1. 存储过程
什么是存储过程:存储过程(store procedure)是数据库 SQL 语言层面的代码封装与重用
1.1 无参数过程
创建
create procedure procedure_name() select condition(s);
修改
MySQL实际上不支持修改,还是删除了直接创建的好
alter proceduren procedure_name() select condition(s);
查看
call procedure_name();
删除
drop procedure procedure_name;
1.2 有参数过程
三个参数 in-输入 out-输出 inout-既能输入也能输出
(输入参数的过程会改变原表的值,而不像视图那样,只是打开一个临时的表)
2. 变量
局部变量
declare declare_name date_type default date;
用户变量
set @variable_name=initial_value;
全局变量
show global variables;
会话变量
show session variables;
查看系统变量的方式
select @@ system_variable_name;
1-2 一个完成的存储过程
格式:
delimiter 99 #设置结束方式
create procedure procedure_name( parameter(in\out\inout) variable_name date_type,……)
begin
#sentence_body
end 99 #表示该进程在此结束
delimiter ; #将语句的结束方式重新设置为; 否则后面语句将以99表示结束
实例:
SET @x=1;
DELIMITER 99
CREATE PROCEDURE test5(IN num1 INT, IN num2 INT,OUT `mysum` INT)
BEGIN
SET `mysum`=num1+num2;
SELECT `mysum` AS 'result' ;