Mysql存储过程定义及讲析

发布时间:2020-04-28 10:08:12 作者:三月
来源:亿速云 阅读:388

下文内容主要给大家带来Mysql存储过程定义及讲析,这里所讲到的知识,与书籍略有不同,都是亿速云专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。

一、什么是mysql存储过程?

是在数据库系统中,一组为了完成特定功能SQL语句集,经编译后存储在数据库中,用户通过制定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
存储过程是经过编译的SQL语句集。编译后节省很多性能。

二、为什么使用存储过程?

1、存储过程只在创造时进行编译,以后每次执行存储过程都不需要再重新编译,而一般SQL语句每执行一次就编译一次,所以存储过程可以提高数据库执行速度
2、当对数据库进行复杂操作时(如对多个表进行UPDATE,INSERT,QUERY,DELETE时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用,这些操作如果用程序来完成,就变成一条条的SQL语句,可能要多次链接数据库,而换成存储过程,只需要链接一次数据库就可以了
3、存储过程可以重复使用,可以减少数据库开发人员的工作量
4、安全性高,可设定只有某些用户才具有对指定存储过程的使用权

三、存储过程的缺点

Mysql存储过程定义及讲析

1、可移植性差
2、对于简单的SQL语句,存储过程没什么优势
3、存储过程中不一定会减少网络传输
4、如果一个用户使用数据库,那么存储过程对安全也没什么影响
5、团队开发时需要统一标准,否则后期维护起来麻烦
6、在大并发访问量的情况下,不宜写过多涉及运算的存储过程
7、业务逻辑复杂时,特别是涉及到对很大的表进行操作的时候,不如在前端先简化业务逻辑

四、存储过程和函数、触发器的区别

1、触发器用于完成一些触发条件所引发的操作,触发器的执行是自动化的
2、自定义函数只能通过return语句返回单个值或者表对象,而存储过程不能调用return语句,但可以通过out参数返回多个值。函数可以在SQL语句中结合使用,函数不能用临时表,只能用表变量,还有一些系统函数都不可用
3、存储过程用于完成一系列的SQL操作,批量的完成数据库操作工作,由使用者调用执行

五、存储过程的创建

Mysql存储过程定义及讲析

解析:
1、写mysql存储过程,首先改变语句结束符,一般改成   //,因为存储过程一般包含多条SQL语句,如果使用默认结束符可能中断SQL的运行
2、mysql> CREATE PROCEDURE存储过程的固定语句,后面跟存储过程的名称,()里面包含(存储过程的参数    参数名称   数据类型)
3、BEGIN....END是存储过程的开始和结束符号,中间是存储过程的内容
4、//结束,表示整个存储过程的语句已经书写完毕
5、书写完毕后将mysql的结束符改回成   ;
6、CALL加上存储过程的名称、参数来调用存储过程

存储过程的参数
格式:
CREATE  PROCEDURE 存储过程名([[IN |OUT |INOUT ] 参数名 数据类形...])

参数IN的特点:存储过程运行时,读取外部变量值,存储过程完成后,其外部变量的值不发生改变,依然是存储过程外部设定的变量值

参数OUT的特点:不读取外部变量的值,存储过程运行完成后,外部变量的值更新为存储过程内部的值
Mysql存储过程定义及讲析

Mysql存储过程定义及讲析

参数INOUT的特点:运行存储过程时,读取外部变量的值,存储过程运行完成后,外部变量的值更新为存储过程内部的值
Mysql存储过程定义及讲析

Mysql存储过程定义及讲析

对于以上关于Mysql存储过程定义及讲析,如果大家还有更多需要了解的可以持续关注我们亿速云的行业推新,如需获取专业解答,可在官网联系售前售后的,希望该文章可给大家带来一定的知识更新。

推荐阅读:
  1. mariadb主从复制讲析
  2. SQL执行顺序讲析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

存储过程 mysql

上一篇:python程序文件的扩展名称及其代表的意思

下一篇:MySQL管理操作简析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》