存储过程是一组为了完成某项特定功能的sql语句集,
其实质就是一段存储在数据库中的代码。
它可以由声明式的sql语句和过程式sql语句组成。
存储过程优点:
1、可增强sql语言的功能和灵活性。
2、良好的封装性
3、高性能
4、可减少网络流量
5、可作为一种安全机制来确保数据库的安全性和数据的完整性。
DELIMITER 命令
DELIMITER$$ 用户定义的结束符
创建存储过程
mysql>use mysql_test;
mysql>delimiter $$
mysql>create procedure sp_update_sex(in cid int,in csex char(2))
->begin
-> update customers set cust_sex=csex where cust_id=cid;
->end $$
查询存储过程
show procedure status$$
删除存储过程
drop procedure if exists sp_update_sex$$
调用存储过程
call sp_update_sex(902,'f')$$
局部变量
DECLARE cid INT(10)
使用DECLARE语句声明局部变量
1、只能在存储过程体的BEGIN...END语句块中的声明。
2、必须在存储过程的开头处声明。
3、作用范围仅限于声明它的BEGIN...END语句块。
4、不同于用户变量
局部变量与用户变量的区别
1、局部变量声明时,在其前面没有@符号,并且它只能被声明它的BEGIN...END语句块中的语句所使用。
2、用户变量在声明时,会在其名称前面使用@符号,同时已声明的用户变量存在于整个会话之中。