存储过程是一组为了完成特定功能的 SQL 语句集,实质是一段存储在数据库中的代码,它可以由声明式的SQL语句和过程式的SQL语句组成
创建存储过程
DELIMITER 命令:修改MySQL结束符
DELIMITER $$CREATE PROCEDURE sp_name([proc_parameter[,...]])routine_body
use mt;delimiter $$create procedure sp_update_sex(in cid int,in csex char(1))beginupdate cust set sex=csex where cust_id=cid;end $$
调用存储过程
CALL sp_name([parameter[,...]])或CALL sp_name[()]
删除存储过程
DROP PROCEDURE [IF EXISTS] sp_name;
存储过程体
1、DECLARE 语句生命局部变量
DECLARE var_name[,...] TYPE [DEFAULT value]
示例:
declare cid int(10);
(1)只能在存储过程体的 BEGIN … END 语句块中声明
(2)必须在存储过程体的开头处声明
(3)作用范围仅限于声明它的 BEGIN … END 语句块
(4)不同于用户变量
2、使用 set 语句为局部变量赋值
set cid=910;
3、使用select … into 语句把选中列的值直接存储到局部变量中(select … into语句只能返回一行数据)
SELECT col_name[,...] INTO var_name[,...] tbl_expr// tbl_expr表示select语句中的from子句及后面的语法部分
