#查询存储过程
SELECT * from mysql.proc where db='aa';
#创建存储过程 声明变量
CREATE PROCEDURE my_test1()
BEGIN
DECLARE num INT DEFAULT 10;
SELECT CONCAT('num的值为:',num);
END;
#调用存储过程
CALL my_test1();
#为变量赋值 SET指令
CREATE PROCEDURE my_test2()
BEGIN
DECLARE num INT DEFAULT 0;
SET num=num+10;
SELECT num;
END;
#调用存储过程
CALL my_test2();
#为变量赋值 SELECT ... INTO ....指令
CREATE PROCEDURE my_test3()
BEGIN
DECLARE num INT DEFAULT 0;
SELECT COUNT(1) INTO num FROM u_user;
SELECT CONCAT('u_user表的记录数为:',num);
END;
#调用存储过程
CALL my_test3();
#存储过程IF ELSEIF 的使用
CREATE PROCEDURE my_test4()
BEGIN
DECLARE age INT DEFAULT 30;
DECLARE description VARCHAR(50) DEFAULT '';
IF age >30 THEN
SET description = '中年人';
ELSEIF age>50 THEN
SET description='老年人';
ELSE
set description = '年轻人';
END IF;
SELECT CONCAT('年龄',age,'对应的年龄段为:',description);
END;
#调用存储过程
CALL my_test4();
#存储过程输入参数使用
CREATE PROCEDURE my_test5(IN age INT)
BEGIN
DECLARE description VARCHAR(50) DEFAULT '';
IF age >30 THEN
SET description = '中年人';
ELSEIF age>50 THEN
SET description='老年人';
ELSE
set description = '年轻人';
END IF;
SELECT CONCAT('年龄',age,'对应的年龄段为:',description);
END;
#调用存储过程
CALL my_test5(18);
#存储过程输出参数使用
CREATE PROCEDURE my_test6(IN age INT,OUT description varchar(50))
BEGIN
IF age >30 THEN
SET description = '中年人';
ELSEIF age>50 THEN
SET description='老年人';
ELSE
set description = '年轻人';
END IF;
END;
#调用存储过程
CALL my_test6(18,@description);
SELECT @description;