以下sql语法只适用于命令行,不适用于部分的客户端,不同的客户端语法可能有差异。
存储过程:
概念类似于函数,就是把一段代码分装起来,当要执行这一段代码的时候,可以通过调用该存储过程来实现。
在封装的语句体里面,可以用if/else,case,while等控制结构。
可以进行sql编程。
在mysql中,存储过程和函数的区别:
1.名称不同 procedure() function()
2.存储过程没有返回值 return xxx;
查看现有的存储过程(命令行中\G可以横向显示)
show procedure status \G
删除存储过程
drop procedure 存储过程的名字
调用存储过程
call 存储过程名字
命令行中定义分隔符
delimiter $
第1个存储过程,体会“封装sql”
create procedure p1()
begin
select * from stu;
end$
调用:
call p1()$
第2个存储过程,体会“参数”
create procedure p2(n int)
begin
select * from stu where id > n;
end$
调用:
call p2(10)$
第3个存储过程,体会“控制结构”
create procedure p3(n int,j char(1))
begin
if j='h' then
select * from stu where id > n;
else
select * from stu where id < n;
end if;
end$
调用:
call p3(10,h)$
call p3(10,k)$
第4个存储过程,体会“循环”
create procedure p4(n smallint,)
begin
declare i int;
declare s int;
set i = 1;
set s = 0;
while i<= n do
set s = s + i;
set i = i + i;
end while;
end$
调用:
call p4(100)$
存储过程:
概念类似于函数,就是把一段代码分装起来,当要执行这一段代码的时候,可以通过调用该存储过程来实现。
在封装的语句体里面,可以用if/else,case,while等控制结构。
可以进行sql编程。
在mysql中,存储过程和函数的区别:
1.名称不同 procedure() function()
2.存储过程没有返回值 return xxx;
查看现有的存储过程(命令行中\G可以横向显示)
show procedure status \G
删除存储过程
drop procedure 存储过程的名字
调用存储过程
call 存储过程名字
命令行中定义分隔符
delimiter $
第1个存储过程,体会“封装sql”
create procedure p1()
begin
select * from stu;
end$
调用:
call p1()$
第2个存储过程,体会“参数”
create procedure p2(n int)
begin
select * from stu where id > n;
end$
调用:
call p2(10)$
第3个存储过程,体会“控制结构”
create procedure p3(n int,j char(1))
begin
if j='h' then
select * from stu where id > n;
else
select * from stu where id < n;
end if;
end$
调用:
call p3(10,h)$
call p3(10,k)$
第4个存储过程,体会“循环”
create procedure p4(n smallint,)
begin
declare i int;
declare s int;
set i = 1;
set s = 0;
while i<= n do
set s = s + i;
set i = i + i;
end while;
end$
调用:
call p4(100)$