一、存储过程的创建和调用
1.创建存储过程
--修改结束分隔符
DELIMITER$
--创建存储过程
CREATE PROCEDURE 存储过程名称(参数列表)
BEGIN
SQL语句列表;
END$
--修改结束分隔符
DELIMITER$
2.调用存储过程
CALL 存储过程名称(实际参数);
3.存储过程的查看和删除
查看数据库中所有的存储过程
SELECT * FROM mysql.proc WHERE db=' 数据库名称 ';
删除存储过程
DROP PROCEDURE IF EXISTS 存储过程名称;
二、存储过程语法
1.变量
定义变量
DECLARE 变量名 数据类型 [DEFAULT 默认值];
变量赋值方式一
SET 变量名 = 变量值;
变量赋值方式二
SELECT 列名 INTO 变量名 FROM 表名 WHERE 条件;
2.if语句
if语句标准语法
IF 判断条件1 THEN 执行sql语句1;
[ELSEIF 判断条件2 THEN 执行sql语句2;]
........
[ELSE 执行的sql语句n;]
END IF;
3.参数传递
存储过程中的参数和返回值
DELIMITER $
CREATE PROCEDURE 存储过程名称 ( [ IN | OUT | INOUT ] 参数名 数据类型 )
BEGIN
SQL语句列表;
END$
IN:代表输入参数,需要有调用者传递实际数据(默认)
OUT:代表输出参数,该参数可以作为返回值
INOUT:代表既可以作为输入参数,也可以作为输出参数
4.while循环
while循环语句
初始化语句;
WHILE 条件判断语句 DO
循环体语句;
条件控制语句;
END WHILE;
三、存储函数
存储函数和存储过程是非常相似的,区别在于存储函数必须有返回值。
1.创建存储函数
DELIMITER $
CREATE FUNCTION 函数名称(参数列表)
RETURNS 返回值类型
BEGIN
SQL语句列表;
RETURN 结果;
END$
2.调用存储函数
SELECT 函数名称(实际参数);
3.删除存储函数
DROP FUNCTION 函数名称;