1、创建存储过程
DELIMITER $ --声明一个结束标识
CREATE PROCEDURE pro_test2(IN userId LONG) --创建存储过程的名称以及添加需要传入的参数
BEGIN --开始
SELECT * FROM mall_order --sql语句
WHERE user_id = userId;
END $ --结束
2、查询储存过程
CALL pro_test2(15); --里面填入的是创建存储过程时的参数
3、删除存储过程
DROP PROCEDURE pro_test1;
4、查看数据库中的存储过程
SELECT name
FROM mysql.proc
WHERE db= "xxx" --xxx是你的数据库名称
5、如果是需要输出的存储过程
DELIMITER $
CREATE PROCEDURE pro_test2(OUT content VARCHAR(20))
BEGIN
SET content = '测试';
END $
查看参数(局部变量,即上面的方法)
CALL pro_test2(@content); --定义局部变量来接收参数
SELECT @content; --查看局部变量值
查看所有全局变量
SHOW variables
查看某个全局比变量
SELECT @@autocommit;
6、带参数的数据查询
DELIMITER $
CREATE PROCEDURE pro_test3(INOUT number INT)
BEGIN
SELECT number;
SET number = 100;
END $
SET @number = 10; --先改变变量的值
CALL pro_test3(@number); --定义变量
SELECT @number; --查询变量,可以在之前先查询一遍,观察数据变化情况
7、带有条件判断的存储
DELIMITER $
CREATE PROCEDURE pro_test(IN number INT,OUT content VARCHAR(20))
BEGIN
IF number = 1 THEN
SET content = '星期日';
ELSEIF number = 2 THEN
SET content = '星期一';
ELSEIF number = 3 THEN
SET content = '星期二';
ELSEIF number = 4 THEN
SET content = '星期三';
ELSEIF number = 5 THEN
SET content = '星期四';
ELSEIF number = 6 THEN
SET content = '星期五';
ELSEIF number = 7 THEN
SET content = '星期六';
ELSE SET content = '您的输入有误';
END IF;
END $
CALL pro_test(2,@content); --定义参数
SELECT @content; --查询变量
8、使用查询的结果赋值给变量(INTO)
DELIMITER $ CREATE PROCEDURE pro_test(IN number INT,OUT accountName VARCHAR(20) ) BEGIN SELECT name INTO accountName FROM user WHERE id=number; END $ CALL pro_findById2(1,@accountName); --定义变量 SELECT @accountName; --查询变量