前言:
今天小伙伴们对“php 存储过程”都比较重视,咱们都想要分析一些“php 存储过程”的相关资讯。那么小编也在网摘上汇集了一些关于“php 存储过程””的相关资讯,希望同学们能喜欢,朋友们快快来学习一下吧!介绍 :
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
语法 :
因为mysql的默认语句结束符是分号;为了避免与存储过程中sql语句结束符冲突所以要先定义分隔符,我们这里定义//为分隔符,我们使用DELIMITER //这样的语法,就可以定义结束符了,当然你可以自己定义其他喜欢的符号。
创建存储过程
delimiter $$
create procedure 存储过程名(输入输出类型 参数名1 参数类型,输入输出类型 参数名2 参数类型,...)
begin
sql语句 (存储过程要完成的操作)
end $$
实例:
不带参数 :
delimiter $$
create PROCEDURE test ()
BEGIN
select * from xsb where sex='男';
END $$
带in参数 :
delimiter $$
create PROCEDURE test2 (in a VARCHAR(20))
begin
select * from xsb where sex=a;
end $$
call test2('女');
带out参数 :
delimiter $$
create PROCEDURE test3 (OUT a varchar(20))
begin
select xm into a from xsb where xh=9512101;
end $$
delimiter ;
call test3(@a); -- 调用过程传入实参
select @a; -- 输出实参
带inout参数 :
delimiter $$
create PROCEDURE test4 (INOUT a varchar(20))
begin
select xm into a from xsb where sex=a order by age desc limit 1;
end $$
delimiter ;
set @a='男'; -- 设置变量a 值为男
call test4(@a); -- 执行过程,传入实参
select @a; -- 结果返回到参数a上,输出a
总结in、out、inout区别:
in : 表示输入一个值,你需要一个值,我给你一个值
out : 你往外输出一个值,你输出的那个值我就拿一个变量来接收你给我输出的那个值
inout : 既能输入一个值又能传出来一个值
过程中的循环 :
delimiter $$
create PROCEDURE auto_insert ()
BEGIN
declare i int default 1;-- 存储过程中定义的临时变量
while(i<=3000000)do -- 循环
insert into s1 values(i,concat('卓象',i,'期'),'PHP',concat('zx',i,'@zx.com'));
set i=i+1;
end while;
END $$
介绍 :
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
语法 :
因为mysql的默认语句结束符是分号;为了避免与存储过程中sql语句结束符冲突所以要先定义分隔符,我们这里定义//为分隔符,我们使用DELIMITER //这样的语法,就可以定义结束符了,当然你可以自己定义其他喜欢的符号。
创建存储过程
delimiter $$
create procedure 存储过程名(输入输出类型 参数名1 参数类型,输入输出类型 参数名2 参数类型,...)
begin
sql语句 (存储过程要完成的操作)
end $$
实例:
不带参数 :
delimiter $$
create PROCEDURE test ()
BEGIN
select * from xsb where sex='男';
END $$
带in参数 :
delimiter $$
create PROCEDURE test2 (in a VARCHAR(20))
begin
select * from xsb where sex=a;
end $$
call test2('女');
带out参数 :
delimiter $$
create PROCEDURE test3 (OUT a varchar(20))
begin
select xm into a from xsb where xh=9512101;
end $$
delimiter ;
call test3(@a); -- 调用过程传入实参
select @a; -- 输出实参
带inout参数 :
delimiter $$
create PROCEDURE test4 (INOUT a varchar(20))
begin
select xm into a from xsb where sex=a order by age desc limit 1;
end $$
delimiter ;
set @a='男'; -- 设置变量a 值为男
call test4(@a); -- 执行过程,传入实参
select @a; -- 结果返回到参数a上,输出a
总结in、out、inout区别:
in : 表示输入一个值,你需要一个值,我给你一个值
out : 你往外输出一个值,你输出的那个值我就拿一个变量来接收你给我输出的那个值
inout : 既能输入一个值又能传出来一个值
过程中的循环 :
delimiter $$
create PROCEDURE auto_insert ()
BEGIN
declare i int default 1;-- 存储过程中定义的临时变量
while(i<=3000000)do -- 循环
insert into s1 values(i,concat('卓象',i,'期'),'PHP',concat('zx',i,'@zx.com'));
set i=i+1;
end while;
END $$
标签: #php 存储过程