存储
一、存储的介绍
三、存储常用的语句
1、查看已经创建的存储结构
格式:show create procedure 存储名;
show create procedure c1;
2、查看所有已经创建好的存储
show PROCEDURE status ;
3、指定数据库查询存储
格式:
show PROCEDURE status where db="库名";
如:
show PROCEDURE status where db="ck1";
4、删除存储
格式:drop PROCEDURE 存储名;
如:
drop PROCEDURE c1 ;
二、存储的格式
格式:
delimiter// #分隔符
create procedure 存储名称() #创建存储 名称 (参数 in out into)
BEGIN #开始
sql语句
end #结束
// #分隔符
call 存储名称() #call 调用 存储名称()
如:
delimiter// #分隔符
create procedure c1() #创建存储 名称 (参数 in out into)
BEGIN #开始
select * from emp ; #SQL语句1
select * from dept ; #sql语句2
end #结束
// #分隔符
call c1() #call 调用 存储名称()
(1)无参数格式
格式:
格式:
delimiter// #分隔符
create procedure 存储名称() #创建存储 名称 (参数 in out into)
BEGIN #开始
sql语句
end #结束
// #分隔符
call 存储名称() #call 调用 存储名称()
如:
delimiter// #分隔符
create procedure c1() #创建存储 名称 (参数 in out into)
BEGIN #开始
select * from emp ; #SQL语句1
select * from dept ; #sql语句2
end #结束
// #分隔符
call c1() #call 调用 存储名称()
(2)带in参数
格式
delimiter// #分隔符
drop PROCEDURE if EXISTS 存储名称; # 判断是否存在,存在就删除,增加健壮性
create procedure 存储名(in 变量名 字符类型(字符长度)) #创建存储 名称 (参数 in out into)
BEGIN #开始
select * from 表名 where 字段名=变量名; #SQL语句1
end #结束
// #分隔符
call 存储名(变量) #call 调用 存储名称()
如:
delimiter// #分隔符
drop PROCEDURE if EXISTS c2; # 判断是否存在,存在就删除,增加健壮性
create procedure c2(in x int(20)) #创建存储 名称 (参数 in out into)
BEGIN #开始
select * from emp where sid=x; #SQL语句1
end #结束
// #分隔符
call c2(1568) #call 调用 存储名称()
(3)带out 参数
a、变量赋值:
select 字段 into 变量名 from 表名 where 条件
b、set @变量名
c、set @变量名=值;
d、select @变量名 查询变量,名
如:
delimiter// #分隔符
drop PROCEDURE if EXISTS c2; # 判断是否存在,存在就删除,增加健壮性
create procedure c2(OUT y int(20)) #创建存储 名称 (参数 in out into)
BEGIN #开始
select dept2 into y from emp where sid=1568; #SQL语句1
end #结束
// #分隔符
call c2(@y) #调用返回的变量名
select @y #查看变量名
(4)带in ,out参数
delimiter// #分隔符
drop PROCEDURE if EXISTS c2; # 判断是否存在,存在就删除,增加健壮性
create procedure c2(in x int(20),OUT y int(20)) #创建存储 名称 (参数 in out into)
BEGIN #开始
select dept2 into y from emp where sid=x; #SQL语句1
end #结束
// #分隔符
call c2(1568,@y) #调用返回的变量名
select @y #查看
(5)带inout 参数
delimiter// #分隔符
drop PROCEDURE if EXISTS c2; # 判断是否存在,存在就删除,增加健壮性
create procedure c2(inout m int(20)) #创建存储 名称 (参数 in out into)
BEGIN #开始
set m=m+1;
end #结束
// #分隔符
set @m=20 #设置一个值,传入
call c2(@m) #调用存储
select @m #查看返回值
备注:如果存储中要输入中文 CHARACTER set utf8
浙公网安备 33010602011771号