Mysql存储过程定义及讲析-创新互联
下文内容主要给大家带来Mysql存储过程定义及讲析,这里所讲到的知识,与书籍略有不同,都是创新互联专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。
一、什么是mysql存储过程?
是在数据库系统中,一组为了完成特定功能SQL语句集,经编译后存储在数据库中,用户通过制定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
存储过程是经过编译的SQL语句集。编译后节省很多性能。
二、为什么使用存储过程?
1、存储过程只在创造时进行编译,以后每次执行存储过程都不需要再重新编译,而一般SQL语句每执行一次就编译一次,所以存储过程可以提高数据库执行速度
2、当对数据库进行复杂操作时(如对多个表进行UPDATE,INSERT,QUERY,DELETE时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用,这些操作如果用程序来完成,就变成一条条的SQL语句,可能要多次链接数据库,而换成存储过程,只需要链接一次数据库就可以了
3、存储过程可以重复使用,可以减少数据库开发人员的工作量
4、安全性高,可设定只有某些用户才具有对指定存储过程的使用权
三、存储过程的缺点
1、可移植性差
2、对于简单的SQL语句,存储过程没什么优势
3、存储过程中不一定会减少网络传输
4、如果一个用户使用数据库,那么存储过程对安全也没什么影响
5、团队开发时需要统一标准,否则后期维护起来麻烦
6、在大并发访问量的情况下,不宜写过多涉及运算的存储过程
7、业务逻辑复杂时,特别是涉及到对很大的表进行操作的时候,不如在前端先简化业务逻辑
四、存储过程和函数、触发器的区别
1、触发器用于完成一些触发条件所引发的操作,触发器的执行是自动化的
2、自定义函数只能通过return语句返回单个值或者表对象,而存储过程不能调用return语句,但可以通过out参数返回多个值。函数可以在SQL语句中结合使用,函数不能用临时表,只能用表变量,还有一些系统函数都不可用
3、存储过程用于完成一系列的SQL操作,批量的完成数据库操作工作,由使用者调用执行
五、存储过程的创建
解析:
1、写mysql存储过程,首先改变语句结束符,一般改成 //,因为存储过程一般包含多条SQL语句,如果使用默认结束符可能中断SQL的运行
2、mysql> CREATE PROCEDURE存储过程的固定语句,后面跟存储过程的名称,()里面包含(存储过程的参数 参数名称 数据类型)
3、BEGIN....END是存储过程的开始和结束符号,中间是存储过程的内容
4、//结束,表示整个存储过程的语句已经书写完毕
5、书写完毕后将mysql的结束符改回成 ;
6、CALL加上存储过程的名称、参数来调用存储过程
存储过程的参数
格式:
CREATE PROCEDURE 存储过程名([[IN |OUT |INOUT ] 参数名 数据类形...])
参数IN的特点:存储过程运行时,读取外部变量值,存储过程完成后,其外部变量的值不发生改变,依然是存储过程外部设定的变量值
参数OUT的特点:不读取外部变量的值,存储过程运行完成后,外部变量的值更新为存储过程内部的值
参数INOUT的特点:运行存储过程时,读取外部变量的值,存储过程运行完成后,外部变量的值更新为存储过程内部的值
对于以上关于Mysql存储过程定义及讲析,如果大家还有更多需要了解的可以持续关注我们创新互联的行业推新,如需获取专业解答,可在官网联系售前售后的,希望该文章可给大家带来一定的知识更新。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章题目:Mysql存储过程定义及讲析-创新互联
网站路径:http://cdiso.cn/article/dcjips.html