10.1 存储过程

10.1.1 创建存储过程

  1. create procedure 存储过程名(参数模式 参数名 参数类型)
  2. begin
  3. 存储过程体
  4. end

参数模式:

  • in:输入
  • out:输出
  • inout:即做输入也做输出

注:

  • 存储过程体的每一条sql语句都需要用分号结尾
  • 如果存储过程体仅仅只有一句话,begin end可以省略
  • 存储过程体中的每条sql语句的结尾要求必须加分号
  • 存储过程的结尾可以使用delimiter重新设置
    • 语法:delimiter 结束标记

10.1.2 调用存储过程

  1. call 存储过程体(实参列表)

10.1.3 删除存储过程

  1. # 语法:
  2. drop procedure 存储过程名
  3. # 例如
  4. DROP PROCEDURE p1;
  5. DROP PROCEDURE p2,p3;

10.1.4 查看存储过程的信息

  1. DESC 存储过程名;
  2. SHOW CREATE PROCEDURE 存储过程名;

10.2 函数

函数是一组先编译好的SQL语句的集合,可以理解成批处理语句
好处:

  • 提高代码的重用性
  • 简化操作
  • 减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率

10.2.1 创建函数

  1. CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型
  2. BEGIN
  3. 函数体
  4. [RETURN 返回值]
  5. END

注意:

  1. 参数列表包含两部分:参数名和参数类型
  2. 函数体:一定要有return语句,如果没有会报错;如果return语句没有放在函数体的最后也不报错,但不建议
  3. 如果函数体中仅有一条语句,则可以省略begin end
  4. 使用delimiter语句可以设置结束标记
  5. 如果有返回值千千万万记得要return

10.2.2 调用函数

  1. SELECT 函数名(参数列表)

10.2.3 查看函数

  1. SHOW CREATE FUNCTION 函数名;

10.2.4 删除函数

  1. DROP FUNCTION 函数名;