细谈Mysql的存储过程和存储函数
1 存储过程
1.1 什么是存储过程
存储过程是一组为了完成某项特定功能的sql语句集,其实质上就是一段存储在数据库中的代码,他可以由声明式的sql语句(如CREATE,UPDATE,SELECT等语句)和过程式sql语句(如IF...THEN...ELSE控制结构语句)组成。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。
1.2 存储过程的优缺点
优点:
1.可增强sql语言的功能和灵活性
存储过程可以用流程控制语言编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。
2.良好的封装性
存储过程被创建后,可以在程序中被多次调用,而不必担心重写编写该存储过程的sql语句。
3.高性能
存储过程执行一次后,其执行规划就驻留在高速缓冲存储器中,以后的操作中只需要从高速缓冲器中调用已编译好的二进制代码执行即可,从而提高了系统性能。
缺点:
存储过程,往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程。
1.3 创建存储过程
1.3.1 DELIMITER定界符
在sql中服务器处理sql语句默认是以分号作为语句的结束标志,然而在创建存储过程时,存储过程体中可能包含多条sql语句,这些sql语句如果仍以分号作为语句结束符,那么服务器在处理时会以第一条sql语句处的分号作为整个程序的结束符,而不再去处理后面的sql。
为解决这个问题,通常使用DELIMITER命令,将sql语句的结束符临时修改为其他符号。
DELIMITER语法格式:
DELIMITER $$
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
细谈Mysql的存储过程和存储函数
下载Word文档到电脑,方便收藏和打印~