您好,登錄后才能下訂單哦!
下面一起來了解下存儲mysql數(shù)據(jù)庫的詳細(xì)過程,相信大家看完肯定會受益匪淺,文字在精不在多,希望存儲mysql數(shù)據(jù)庫的詳細(xì)過程這篇短內(nèi)容是你想要的。
存儲過程可以簡單理解為一條或者多條sql語句的集合,存儲過程用來實現(xiàn)將一組關(guān)于表的操作的sql語句當(dāng)作一個整體來執(zhí)行,存儲過程在實際應(yīng)用中最主要的特點的事提高執(zhí)行效率以及sql代碼封裝功能,特別是sql代碼封裝功能,如果沒有存儲過程,在外部程序訪問數(shù)據(jù)庫時(例如php),要組織很多sql語句,特別是業(yè)務(wù)邏輯比較復(fù)雜的時候,一大堆的sql和條件夾在php代碼中,讓人不寒而栗,有了sql存儲過程,業(yè)務(wù)邏輯可以封裝存儲過程,這樣不僅容易維護(hù),而且執(zhí)行效率也高。
例如:在電子商務(wù)站點中使用存儲過程來實現(xiàn)商品訂單處理
存儲過程如何一門程序設(shè)計語言,同樣包含了數(shù)據(jù)類型,流程控制,輸入和輸出和它自己的函數(shù)庫
基本語法
Create procedure sp_nane() 函數(shù)里面可以有參數(shù)也可以沒有
Begin
--------- //代碼體
End
Call sp_nane() 存儲過程名 //調(diào)用存儲過程
實例mysql>use mysql
Mysql>Delimiter $$ //定義分隔符
Mysql>Create procedure sp_nane() 函數(shù)里面可以有參數(shù)也可以沒有
Begin
Select user from user;
End$$
Mysql>Delimiter;
方法一show procedure status
實例:show procedure status \G
方法二查看系統(tǒng)表information_schema.routines
實例:select * from information_schema.routines\G
方法三通過show crerate procedure語句查看存儲過程定義信息
實例:show crerate procedure proce_user\G
Drop procedure 存儲過程名字 刪的時候不要加().
實例:drop procedure proce_param_inout;
循環(huán)控制
WHILE ---DO--END WHILE //先判斷再執(zhí)行
實例:
Mysql>Delimiter $$ //定義分隔符
Mysql>create table t1(id int);
Mysql>Create procedure proce_while() 函數(shù)里面可以有參數(shù)也可以沒有
Begin
Declare i int; //定義變量
Set i=1; //將變量做了一個初始化,如果不做初始化,將為null
While i<5 do
Insert into t1 values(i);
Set i=i+1;
End while;
End$$
Mysql>Delimiter;
Pepeat---until end pepeat 先執(zhí)行再判斷
實例:
Mysql>Delimiter $$ //定義分隔符
Mysql>Create procedure proce_repeat() 函數(shù)里面可以有參數(shù)也可以沒有
Begin
Declare i int default 1; //定義變量,初始化
repeat
Insert into t1 values(i);
Set i=i+1;
Until i>=6
End repeat;
End$$
Mysql>Delimiter;
Loop--end loop
實例:
Mysql>Delimiter $$ //定義分隔符
Mysql>Create procedure proce_loop() 函數(shù)里面可以有參數(shù)也可以沒有
Begin
Declare i int default 1; //定義變量,初始化
Loop_label:loop //定義一個標(biāo)號,跟標(biāo)簽一樣
Insert into t1 values(i);
Set i=i+1;
If i>=6 then
Leave loop_label;
End if;
End loop;
End$$
Mysql>Delimiter;
實例:
Mysql>Delimiter $$ //定義分隔符
Mysql>Create procedure proce_param_in(in id int) //用in傳值傳的是id字段,int類型的
Begin
If (id is null) then //如果id變量是空值
Select ‘id is null’ as id_null;
Else
Set i=i+1;
End if;
Select id as id_inside; //打印一下id的值
End$$
Mysql>Delimiter;
實例:
Mysql>Delimiter $$ //定義分隔符
Mysql>Create procedure proce_param_out(out id int) //用out傳值傳的是id字段,int類型的
Begin
Select id as id_inside_1; //id初始值為null
If (id is not null) then //如果id變量不是空值
Set id=id+1;
Select id as id_inside_2; //打印一下id的值
Else
Select 100 into id; //把100輸入到id
End if;
Select id as id_inside_3;
End$$
Mysql>Delimiter;
實例:
Mysql>Delimiter $$ //定義分隔符
Mysql>Create procedure proce_param_inout(inout id int) //用out傳值傳的是id字段,int類型的
Begin
Select id as id_inside_1; //id值為調(diào)用者傳進(jìn)來的值
If (id is not null) then //如果id變量不是空值
Set id=id+1;
Select id as id_inside_2; //打印一下id的值
Else
Select 100 into id; //把100輸入到id
End if;
Select id as id_inside_3;
End$$
Mysql>Delimiter;
看完存儲mysql數(shù)據(jù)庫的詳細(xì)過程這篇文章后,很多讀者朋友肯定會想要了解更多的相關(guān)內(nèi)容,如需獲取更多的行業(yè)信息,可以關(guān)注我們的行業(yè)資訊欄目。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。