赞
踩
目录
存储过程是一组为了完成特定功能的SQL语句集合。类似于于其他编程语言中的函数,定义一个函数方法,可以随时起到传参调用的功能
存储过程在使用过程中是将常用或者复杂的工作预先使用SQL语句写好并用一个指定的名称存储起来,这个过程经编译和优化后存储在数据库服务器中。当需要使用该存储过程时,只需要调用它即可。存储过程在执行上比传统SQL速度更快、执行效率更高
- ##创建存储过程:
- DELIMITER $$ #将语句的结束符号从分号;临时改为两个$$ (可以是自定义)
- CREATE PROCEDURE Proc () #创建存储过程,过程名为Proc,不带参数
- -> BEGIN #过程体以关键字BEGIN开始
- -> select * from store_info; #过程体语句
- -> END $$ #过程体以关键字END结束
-
- DELIMITER; #将语句的结束符号恢复为分号
call proc1;
- SHOW CREATE PROCEDURE [数据库.]存储过程名; #查看某个存储过程的具体信息
- SHOW CREATE PROCEDURE Proc;
- SHOW CREATE PROCEDURE Proc\G
- show procedure status like '%proc%';
- show procedure status like '%proc%'\G;
- #存储过程内容的修改方法是通过删除原有存储过程,之后再以相同的名称创建新的存储过程。
- DROP PROCEDURE IF EXISTS 存储过程名;
- #仅当存在时删除,不添加If EXISTS 时,如果指定的过程不存在,则产生一个错误。
- mysql> delimiter $$
- mysql> create procedure proc2 ()
- -> begin
- -> insert into info2 values('小白','running','2002-7-11');
- -> select * from info2 ;
- -> delete from info2 where name='小刚';
- -> end $$
- mysql> delimiter ;
- mysql> call proc2;
- mysql> delimiter $$
- mysql> create procedure proc3 (in uname char(20))
- -> begin
- -> select * from student where name=uname;
- -> delete from student where name=uname;
- -> select * from student;
- -> end $$
-
-
- mysql> delimiter ;
call proc3 ('张三');
只接受变量的调用,不接受直接传入的值
- mysql> delimiter $$
- mysql> create procedure test(out num int)
- -> begin
- -> set num=100;
- -> end $$
-
-
- mysql> delimiter ;
- mysql> create procedure proc5 (inout a int)
- -> begin
- -> select a;
- -> set a=a+10;
- -> select a;
- -> end $$
-
- delimiter ;
- mysql> delimiter $$
- mysql> create procedure test2(in num int)
- -> begin
- -> if num >=10 then
- -> set num=num-5;
- -> else
- -> set num=num*2;
- -> end if;
- -> select num;
- -> end $$
-
-
- mysql> delimiter ;
decalre -i var
声明变量var为整数型( 即增加整型属性)
decalre +i var
删除变量var的整型属性
- mysql> delimiter $$
- mysql> create procedure test3 ()
- -> begin
- -> declare a int;
- -> declare i int;
- -> set a=10;
- -> set i=1;
- -> while i<=10 do
- -> set a=a+10;
- -> set i=i+1;
- -> end while ;
- -> select a;
- -> end $$
-
- mysql> delimiter ;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。