项目六:存储过程
目录
任务6.1:创建简单存储过程
1.数据库变量定义:
变量是指在程序运行过程中其值可以改变的量,包括用户变量、系统变量和局部变量。
(1)用户变量(自己定义的变量):用户变量在使用前必须定义和初始化,如果使用没有初始化的变量,其值为null。
定义和初始化用户变量语法格式:
SET @变量名 = 值;(可以定义多个用户变量,用“,”隔开)
(2)系统变量(系统已有的变量):
以“@@”为前缀:@@version(返回MySQL的版本) @@date(时间变量)
(3)局部变量(先声明后使用)
声明局部变量的语法格式:declare 变量名 数据类型[default 默认值];
2.MySQL的逻辑运算符:and(与)、or(或)、not(非)
3.if分支结构:
4.while循环语句:
5.loop循环语句:
6.repeat循环语句:
7.leave语句(跳出循环控制):leave 标签;
8.iterate 语句(跳出本次循环):iterate 标签;
9.修改SQL语句结束符
语句:delimiter 结束符
10.创建存储过程:
语句:create procedure 存储过程名()
begin
……
……
end;
11.查看存储过程
语句:show procedure status [like 存储过程模糊名];
语句:show procedure status 存储过程名;
12.调用存储过程
语句:call 存储过程名();
13.删除存储过程
语句:drop procedure 存储过程名;
任务6.2:创建带输入参数的存储过程
1.创建带输入参数的存储过程
语句:create procedure 存储过程名 ([形参列表])
begin
……
……
end;
2.调用参数的存储过程
语句:call 存储过程名([<实参列表>]);
任务6.3:创建带输入和输出参数的存储过程
1.创建带输入和输出参数的存储过程
语句:create procedure 存储过程名 ([形参列表])
begin
……
……
end;
2.若有多个参数,参数的定义格式为:
[in(输入参数)|out(输出参数)|inout(输入/输出参数)] 参数名1 参数类型,参数名2 参数类型,……,参数名n 参数类型
任务6.4:创建应用游标的存储过程
声明游标
语句:declare 游标名 cursor for 查询语句;
打开游标
语句:open 游标名;
读取游标
语法:fetch 游标名 into 变量名1,变量名2,……
关闭游标
语法:close 游标名;
任务6.5:创建与使用事务
开启事务
语句:start transaction;
结束事务
提交 commit;
取消 rollback;
设置事务隔离级别
语句:set session transaction isolation level 隔离级别;
事务隔离级别
read uncommitted 读取未提交(脏读)
read committed 读取提交(不可重复读)
repeatable read 可重复读(幻读)
serializable 可串行化