存储过程
存储过程的语法格式:
create procedure 存储过程名称(参数)
begin
主体部分
end
使用delimiter 命令修改结束符
例如:delimiter $$
将结束符改为 $$
因为在存储过程中可能包含多个sql语句,每个sql语句都是以分号结尾,这个时候服务器处理程序的时候遇到第一个分号就会认为程序结束,这样肯定是不行的,因此需要修改结束符
例如:
delimiter $$
create procedure delete_student(in xh char(6))
begin
delete from xs where xs_id = xh;
end $$
delimiter ;//将结束修改符修改回来
上面就是一个存储过程,调用时指定对应的学号就可以删除对应的学生信息
调用存储过程
语法:call 存储过程名(参数)
例如
call delete_student(81101),调用了上面的存储过程,删除了对应学号的学生信息
可以在存储过程中写入条件语句:
上图中创建了一个名为txcompar的存储过程,指定了一个integer类型的输入性参数k1以及一个输出型参数k2
调用存储过程:
call txcompar(5,@k);//传入一个数值为5的参数,并且声明一个变量k
查看k的内容
可以在存储过程中声明局部变量
语法:declare 变量名 变量类型;
select xs_rq into rq1 from xs where xs_id=xh1;
这条语句查询学号等于xh1的学生日期,并将结果赋给了变量rq1
上图这个存储过程实现了传入两个学生的学号,根据查询结果显示第一个学生的出生日期比第二个学生的大还是小。
调用上图的存储过程