標籤:name 依次 iter 處理 簡單 int end 它的 服務
一、預存程序
預存程序是儲存在資料庫目錄中的一段聲明性sql語句,感覺其功能類似函數。
1.簡單的預存程序
我們可以通過create procedure procedure_name 語句建立預存程序,然後通過call procedure_name 語句調用預存程序。
delimiter // create procedure procedure_name( ) begin select * from table_name end //delimiter ;
下面我們來詳細的說明上述預存程序:
- 第一個命令delimiter // ,與預存程序文法無關。它是將標準分隔字元--逗號(;)改為--雙斜杠(//)。因為我們想將預存程序作為整體傳給伺服器,而不是讓MySQL依次解釋每個語句。關鍵字end後使用分隔字元//來指示預存程序的結束,左後將分隔字元該回分號。
- 使用create procedure語句建立預存程序。
- begin 和 end 之間的部分是預存程序的主題,將聲明性的sql語句放在主題中以處理商務邏輯。
2.聲明變數
要在預存程序中聲明一個變數,可使用declare 語句,其基本文法格式如下:
declare variable_name datetype( size ) default default_value;
聲明變數後,就可以開始使用變數了。我們可以使用set 語句為其分配值,也可以使用 select into 語句將查詢結果分配給一個變數.
例如,假設我們有一個產品表(products),我們聲明兩個變數 total_count 和 m,將totla_count賦值為10,將products表的資料個數賦值給m:
declare total_count,m int default 0;set total_count = 10;select count(*) into mfrom products;
注意:變數有自己的範圍(範圍),它用來定義它的生命週期。 如果在預存程序中聲明一個變數,那麼當達到預存程序的END語句時,它將超出範圍,因此在其它代碼塊中無法訪問。
3.參數簡介
My SQL 進階部分