存储过程

一、存储过程

概念类似于函数,就是把一段代码封装起来。当执行这一段代码的时候可通过调用该存储过程来实现,在封装语句体里面可以使用if、else、case、while等控制结构的语句。可以进行SQL编程。

存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。当想要在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟,它允许控制数据的访问方式。

二、操作

1、查询现有的存储过程: 

show procedure status

2、删除存储过程:

drop procedure '存储过程名'

 

3、创建存储过程

DELIMITER $$

  CREATE PROCEDURE myproc(OUT s int)
    BEGIN
      SELECT COUNT(*) INTO s FROM students;
    END$$

DELIMITER ;
分隔符

MySQL默认以";"为分隔符,如果没有声明分割符,则编译器会把存储过程当成SQL语句进行处理,因此编译过程会报错,所以要事先用“DELIMITER //”声明当前段分隔符,让编译器把两个"//"之间的内容当做存储过程的代码,不会执行这些代码;“DELIMITER ;”的意为把分隔符还原。

参数

存储过程根据需要可能会有输入、输出、输入输出参数,如果有多个参数用","分割开。MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT:

  • IN参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值
  • OUT:该值可在存储过程内部被改变,并可返回
  • INOUT:调用时指定,并且可被改变和返回

过程体

过程体的开始与结束使用BEGIN与END进行标识。

参考链接:

http://www.cnblogs.com/mark-chan/p/5384139.html

 视频链接:

http://www.iqiyi.com/v_19rrme86c0.html#curid=516577900_118daadf09cdf2ff46f2b6576fafc3be

例子:

原文地址:https://www.cnblogs.com/yufeng218/p/7271658.html