变量类型:
会话变量:只在内存中存在,关闭数据库就失效
创建:set @var_name = xx;
查看:select @var;
局部变量:在存储过程中使用,作用于类似于java的方法域
创建:declare var_name [default xx];
存储过程的使用:加快查询速度,但是可移植性非常差
模板:
delimiter $
create procedure pro_name(...)
begin
--内容--
end $
不带参数,in(输入),out(输出),inout(输入输出)
into:可以把查询语句的结果赋值给变量
例1):查询所有用户信息
--建立
delimiter $
create procedure pro_selectAll()
begin
select * from users;
end $
--使用
call pro_selectAll();
例2):查询id为2的用户信息
--建立
delimiter $
create procedure pro_selectById(in uid int)
begin
select * from users where id = uid;
end $
--使用
call pro_selectAll(2);
例3):判断成绩学生平均等级
--建立
DELIMITER $
CREATE PROCEDURE pro_into(OUT res VARCHAR(20))
BEGIN
DECLARE tem INT DEFAULT 0;
SELECT AVG(english) INTO tem FROM student;
IF tem < 60 THEN
SET res = '不及格';
ELSEIF tem < 80 THEN
SET res = '一般';
ELSE
SET res = '优秀';
END IF;
END $
--使用
CALL pro_into(@str);
SELECT @str;