1、什么是存储过程?
是sql查询语句与流程控制语句的预编译集合,以特定的方式存储在数据库中、以存储的名字来进行访问
2、存储过程好处:
效率高、可重复使用,减少网络流量、安全性
3、存储过程的分类:存储过程 和存储函数
存储过程的创建 procedure
通用语法:
Create procedure 存储过程名([in/out/inout 参数名 数据类型])
Begin
内容
—流程控制语句,增删改查
End
——无参数的存储过程
Create procedure 存储过程名()
Begin
内容
End;
——调用存储过程
Call 存储过程名();
——有参数的存储过程:in输入 、out 输出、inout 输出输入
输入语法:
Create procedure 存储过程名( in 参数名 数据类型 ,in 参数名 数据类型 ) –in可以不写
Begin
内容 –操作 传入的参数
End
——调用存储过程
Call 存储过程名称(值1,值2);
——输出参数
Create procedure 存储过程名(out 参数名 数据类型 ,out 参数名 数据类型 ) –out必须写
Begin
内容 –操作 为输出参数赋值
End
——调用存储过程—传入接收值得变量 –全局变量 @变量名
Call 存储过程名称(@变量名);–进入存储过程 取值
操作变量
Select @变量名 –输出变量
——给输出参数/变量赋值 语法
1、set参数名/变量名=值;
2、select 字段名 into参数名/变量名 from表明 where 条件
——输入/输出 inout
Create procedure 存储过程名 (inout 参数名 数据类型 ,inout 参数名 数据类型)–inout必须写
Begin
内容 –操作 给参数 赋值,被取值
End
——调用存储过程
Set @变量名=值;
Call 存储过程名(@变量名);
Select @ 变量名
1、变量类型:全局变量,局部变量
1.1全局变量:无序定义,直接使用,值 默认为null 以@符号开头 列如@a
输出 全局变量: select @变量名
赋值: set @变量名=值; 或 select 字段名 into @变量名 from表明 where条件
1.2局部变量:需要定义 只能定义在存储过程或函数内
定义局部变量:declare 变量名 数据类型;
定义并初始化:declare 变量名 数据类型 default值;
赋值:set 变量名=值; 或查询语句中赋值 select 字段名 into变量名from表名where条件
输出同上
2、条件语句:
If 语句:
单分支:if表达式 then 操作;
End if;
如果表达式1成立 就执行then 后面的操作
双分支:if 表达式1 then 操作;
Else 操作2;
End if;
如果表达式1成立就执行操作1,否则执行操作2;
多分支:if 表达式1 then 操作1;
Elseif 表达式2 then 操作2;
Elseif 表达式3 then 操作3;
Else 操作4;
End if;
如果表达式1成立就执行操作1,不成立再看表达式2是否成立,成立就执行操作2前面都不成立默认执行else后的
Case 语句:
格式一:
Case
When 表达式1 then 操作1;
When 表达式2 then 操作2;
Else 操作3;
End case;
原理与if elseif 相似
格式二:
Case 变量名
When 值1 then 操作1;
When 值2 then 操作2;
When 值n then 操作n;
End case;
原理与switch相似
变量名与when 后 值进行就执行 then后面的操作
如果嵌入到查询语句中,每个操作后不打;号,并结束 只写end
Select case列名
When 值 then ‘内容’
When 值 then ‘内容’
End 取别名 from表名;
Select case列名
When 列名>值 then ‘内容’
When列名<值 then ‘内容’
End 取别名 from表名;
Iterate ----类似C语言 continue
遇到该关键字 跳过此次循环 进入下一次循环
Leave—类似C语言break
遇到该关键字 结束单个循环
循环1:loop –死循环
语法:
[标记名:] loop
循环内容;
If 条件 then —满足什么条件就结束循环
Leave 标记名;
End if ;
End loop;
循环2:repeat –类似于 do-while
语法:
Repeat
循环体;
Until 条件 end repeat;
先执行循环体一遍,再来判断条件是否满足,满足就结束循环,不满足就继续
循环3:while –类似于while
语法:
[标记名]While 表达式 do
循环操作;
End while;
当表达式成立时,就执行循环操作,知道循环表达式不成立为止
存储过程· 可以调用
本文深入解析了存储过程的概念、优势及创建方法,涵盖了无参数、有参数(包括输入、输出、输入输出参数)的存储过程创建与调用,以及变量、条件语句、循环控制等流程控制语句的应用。
2840

被折叠的 条评论
为什么被折叠?



