什么是存储过程?

存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。
存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。

存储过程的优缺点

优点

  1. 实现了模块化编程。
  2. 调用一次以后,相关信息就保存在内存中,下次调用时可以直接执行。
  3. 存储过程可以接受输入参数并可以返回输出值。
  4. 存储过程具有对数据库立即访问的功能。
  5. 使用存储过程可以加快程序的运行速度。
  6. 使用存储过程可以减少网络流量。
  7. 使用存储过程可以提高数据库的安全性。

    缺点

  8. 存储过程,往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程。

  9. 存储过程的性能调校与撰写,受限于各种数据库系统。

    存储过程编写

    基本结构
    1. create procedure sp_name(proc_parameter) --proc_parameter:[ IN | OUT | INOUT ] param_name type
    2. --某些数据库需要在存储过程参数后加上as或者is
    3. begin
    4. sql语句/逻辑
    5. end ;
    调用存储过程:
    1. call sp_name[(传参)];

声明存储过程语句结束符,可以自定义:

  1. DELIMITER $$ DELIMITER //

变量定义:

  1. DECLARE var_name[, var_name] ... type [DEFAULT value];

附参考资料: