程式設計師必備介面測試偵錯工具:
推薦學習:
儲存過程是一組為了完成特定功能的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<6 do #使用while迴圈,當var值小於6時滿足條件,則向表中插入var的值
-> insert into ss values(var);
-> set var=var+1; #每次迴圈後var值自增1
-> end while; #結束while迴圈
-> end $$ #建立儲存過程結束
delimiter ; #重新修改預設結束符為原始的;
call proc05; #呼叫儲存過程proc04
登入後複製
推薦學習:
以上就是MySQL儲存過程高階SQL語句總結的詳細內容,更多請關注TW511.COM其它相關文章!