创建
- 语法如下
delimiter // create procedure 存储过程名称(参数列表) begin sql语句 end // delimiter ;
- 说明:delimiter用于设置分割符,默认为分号
- 在“sql语句”部分编写的语句需要以分号结尾,此时回车会直接执行,所以要创建存储过程前需要指定其它符号作为分割符,此处使用//,也可以使用其它字符
示例
- 要求:创建查询过程,查询学生信息
- step1:设置分割符
delimiter //
- step2:创建存储过程
create procedure proc_stu()
begin
select * from students;
end
//
- step3:还原分割符
delimiter ;
- 执行效果图如下
查看
- 所有存储过程和函数,都存储在mysql数据库下的proc表中
- 查看表结构
desc mysql.proc\G;
- 主要字段说明:
- name表示名称
- type表示类型,为存储过程、函数
- body表示正文脚本
- db表示属于的数据库
- 查看python数据库的所有存储过程
select name,type,body from mysql.proc where db='python';
调用
- 语法如下
call 存储过程(参数列表);
示例
- 要求:调用存储过程proc_stu
call proc_stu();
删除
- 语法如下
drop procedure 存储过程名称;
- 说明:存储过程内部的sql语句无法修改,如果之前创建的存储过程不能满足要求,可以删除后重新创建
示例
- 要求:删除存储过程proc_stu
drop procedure proc_stu;