今天老师很详细讲了我们接触的新知识-----存储过程。以下是我们今天所学习的知识点。
一、存储过程的优点
1、批处理,减少客户和服务器之间的交流次数;
2、服务器端运行,移植性好;
3、安全要求高的行业;
4、包含流程控制结构的SQL语句的集合
二、创建存储过程
1、基本应用
语法格式:
create database
create table
存储函数
;---每条语句的结束
声明新的结束符(任选,避免在MySQL环境下有特殊含义)
delimiter(分隔符) $$
delimiter //
delimiter ;//
create procedure(过程) p_name(in c_name 数据类型)
[特征描述1、使用什么语言创建存储过程2、结果的确定性3、4、权限
5、注释]
SQL语句集合(一条,多条)
例如:
Create procedure p1() select * from t2;
Create procedure p1()
Begin
流程控制结构;
SQL语句集合;
end //
2、参数的应用
IN 输入形参参数的使用
set @x=3;
select @x;
调用必须有对应的实参(类型、数量)将信息带入到存储过程
create procedure p10(IN para1 int) set @x=para1;
create procedure p10(para1 int) set @x=para1;
call p10(18);
select @x;
用户定义变量:声明开始set @x=3;
到断开连接结束
不能和其他用户共享
作用域:
存储过程的局部变量:临时结果
作用范围:从声明位置开始,到end结束
语法格式
1) 分步
declare(声明) var_name type;
var_name初值是null
set var_name=值;
2) Declare var_name type default 值;
3) Declare v1,v2 int;
Set v1=5,v2=8;
OUT 输出形参的使用\
用一个变量(实参位置)保存存储过程中返回的结果
Create procedure p14(OUT para1 int)
begin
set para1=10;
end//
错误的:
call p14(x);
select x;
正确的:
call p14(@x);
select @x;
select @y:=@x+1;
3、嵌套
Create procedure p15()
Begin
Declare v1 char(10) default’ ‘outer;
Begin
Declare v1 char(10) default ‘inner’;
Select v1;
End;
Select v1;
End//
三、流程控制结构
第一组:条件分支结构
IF语句
CASE 语句
语法:
IF 条件1 THEN 语句集合
【ELSEIF 条件2 THEN 语句集合】
【ELSE 语句集合】
END IF; 注意有空格
注意:
形参中的变量如果和存储过程中的局部变量同名,会“覆盖”;
形参变量在存储过程中无大小写的要求;
CASE
语法
Case 变量
When 变量取值1 then 语句集合
When 变量取值2 then 语句集合
Else 语句集合
End case;
Case
When 变量与值1表达式 then 语句集合
When 变量与值2表达式 then 语句集合
Else 语句集合
End case;
循环结构
While….END WHILE
LOOP…END LOOP
REPEAT…END REPEAT
GOTO(不推荐使用,流程混乱,淘汰)
删除存储过程
Drop procedure 名;
四、select …into 变量列表
只能应用在存储过程
Create procedure p19(out para1 char(20))
Begin
Select s1 into para1 from t1;
End//
以上这些知识点可以自己写一些小程序实际操一下,这样就会记得更劳!