이 기사는 저장 프로시저의 고급 SQL 문에 대한 관련 내용을 주로 소개하는 mysql에 대한 지식을 제공합니다. 모두에게 도움이 되기를 바랍니다.
추천 학습: mysql 동영상 튜토리얼
저장 프로시저는 특정 기능을 수행하도록 설계된 SQL 문 집합입니다.
저장 프로시저를 사용하는 경우, 일반적이거나 복잡한 작업을 SQL 문을 사용하여 미리 작성하고 지정된 이름으로 저장합니다. 이 프로세스는 컴파일되고 최적화되어 데이터베이스 서버에 저장됩니다. 이 저장 프로시저를 사용해야 하는 경우 이를 호출하기만 하면 됩니다. 저장 프로시저는 기존 SQL보다 실행 속도가 빠르고 효율적입니다.
delimiter $$ #将语句的结束符号从分号;临时改为两个$$(可以自定义) create procedure proc () #创建存储过程,过程名为proc,不带参数 -> begin #过程体以关键字begin开始 -> select * from store_info; #过程体语句 -> end $$ #过程体以关键字end结束 delimiter ; #将语句的结束符号恢复为分号
예:
delimiter $$create procedure proc01 ()-> bengin -> create table student(id int,name char(10),age int);-> insert into student values(1,'zhangsan',18);-> insert into student values(2,'lisi',18);-> select * from student;-> end $$delimiter ;
call proc; #调用存储过程 show create procedure [数据库.]存储过程名; #查看某个存储过程的具体信息 show create procedure proc; show create procedure proc\G show procedure status [like '%proc%'] \G
예:
call proc01; show create procedure proc01; show create procedure proc01\G #查看存储过程的具体信息 show procedure status like '%Proc01%'\G
#存储过程内容的修改方法是通过删除原有存储过程,之后再以相同的名称创建新的存储过程。 drop procedure if exists proc; #仅当存在时删除,不添加If EXISTS 时,如果指定的过程不存在,则产生一个错误。
예:
drop procedure if exists proc01;
참고: 변수 이름에는 밑줄을 사용할 수 없습니다.
delimiter $$create procedure proc2(in stuname char(20)) #参数为stuname,数据类型一定要与下面的where语句后字段的数据类型相同-> begin -> select * from student where name = stuname;-> end $$delimiter ;call proc2('zhangsan'); #调用存储过程,并传入参数‘zhangsan’
delimiter $$ create procedure proc03(in innum int) #创建存储过程proc03,参数为innum,类型为int -> begin -> declare var int; #定义变量var为int类型 -> set var=innum*2; #变量var的值等于传入的参数值乘2 -> if var>=10 then #当var的值大于10时,id值会加1,否则减1 -> update ss set id=id+1; -> else -> update ss set id=id-1; -> end if; -> end $$ delimiter ; call proc03(8); #调用存储过程,并传入参数8 call proc03(3); #调用存储过程,并传入参数3
delimiter $$ #修改默认结束符为$$ create procedure proc05() #创建存储过程proc04 -> begin #过程体以关键字begin开始 -> declare var int(10); #定义变量var为int类型 -> set var=0; #var的起始值为0 -> while var insert into ss values(var); -> set var=var+1; #每次循环后var值自增1 -> end while; #结束while循环 -> end $$ #创建存储过程结束 delimiter ; #重新修改默认结束符为原始的; call proc05; #调用存储过程proc04
추천 학습: mysql 비디오 튜토리얼
위 내용은 MySQL 저장 프로시저 고급 SQL 문 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!