mysql存儲過程實例詳解
mysql中存儲過程是屬於一種在數據庫中存儲複雜程序,以便於外部程序調用的一種數據庫對象。
存儲過程一般來說是爲了完成特定功能的SQL語句集,經過編譯後創建並保存在數據庫中,用戶可以通過指定存儲過程的名字並給定參數(通常是在需要時)來進行調用執行。
mysql存儲過程優點:
1、存儲過程可以進行封裝,並且隱藏複雜的商業邏輯。
2、存儲過程能夠回傳值,並能接受參數。
3、存儲過程通常是無法使用SELECT指令來進行運行的,由於它是屬於子程序,與查看表、數據表或是用戶定義函數不同。
4、存儲過程能夠用於數據檢驗,強制實行商業邏輯等。
當然,它也存在了一部分缺點:
1、存儲過程一般是定製化於特定的數據庫上,因爲其所支持的編程語言不同。當切換到了其他廠商的數據庫系統時,就需要重寫原有的存儲過程了。
2、存儲過程的性能調校與撰寫,一般會受限於各種數據庫系統。
參考示例:
存儲過程的操作,具體代碼如下:
創建:
CREATE PROCEDURE sp_name([proc_parameter[,...]])
[characteristic...] routine_body
proc_parameter:
[IN|OUT|INOUT] param_name type #type: Any valid MySQL data type
characteristic:
LANGUAGE SQL
|[NOT] DETERMINISTIC|{CONTAINS SQL|NO SQL|READS SQL DATA|MODIFIES SQL DATA}|SQL SECURITY {DEFINAER|INVOKER}|COMMENT 'string'
routine_body:
Valid SQL procedure statement or statements
修改:
ALTER PROCEDURE sp_name [characteristic...]
characteristic:
{CONTAINS SQL|NO SQL|READS SQL DATA|MODIFIES SQL DATA}|SQL SECURITY {DEFINAER|INVOKER}|COMMENT 'string'
調用:
CALL sp_name([parameter[,...]])
刪除:
DROP PROCEDURE sp_name
查看:
show PROCEDURE STATUS [like 'pattern']
SHOW CREATE PROCEDURE sp_name
在MYSQL 存儲過程中的關鍵語法:
聲明語句結束符,可自定義爲:
DELIMITER $$
或
DELIMITER //
聲明存儲過程,即:
CREATE PROCEDURE demo_in_parameter(IN p_in int)
存儲過程開始與結束符號,即:
BEGIN .... END
變量賦值,即:
SET @p_in=1
變量定義:
DECLARE l_int int unsigned default 4000000;
創建mysql存儲過程、存儲函數:
create procedure 存儲過程名(參數)
存儲過程體:
create function 存儲函數名(參數)
示例:
若是刪除給定球員參加的所有比賽,具體代碼爲:
mysql> delimiter $$ #將語句的結束符號從分號;臨時改爲兩個$$(可以爲自定義)
mysql> CREATE PROCEDURE delete_matches(IN p_playerno INTEGER)
-> BEGIN
-> DELETE FROM MATCHES
-> WHERE playerno = p_playerno;
-> END$$
Query OK, 0 rows affected (0.01 sec)
mysql> delimiter; #將語句的結束符號恢復爲分號
-
新筆記本電腦第一次充電要多久,筆記本電腦充電時間
1、第一次先把筆記本電池中的電完全用完,然後關機充電12個小時以上,最好14個小時左右。2、只有第一次充電需要衝的時間長,以後每次都是充滿即可,現在的筆記本都是有完善的電源管理電路和充電管理體系,充電時間過長,這樣會導致充電時熱量過高,會引起爆炸等現象。3、如...
-
吃菠蘿什麼好處
菠蘿是一種熱帶水果,從十六世紀末傳入中國以來,因爲吃起來酸甜可口,成爲備受人們喜愛的熱帶水果之一,也因此在中國南方,氣候適宜的地方得到普遍的栽培,中國也是世界十大菠蘿產國之一。在生活中有人可能分不清菠蘿和鳳梨的區別,從生物學上來說,這倆是同一種水果,但是在商...
-
樂視視頻開通會員怎麼開
開通樂視視頻會員的途徑很簡單,在官網註冊賬號選擇開通的會員類型,點擊支付即可。也可以通過手機裏面的樂視視頻APP開通會員,先註冊或者登錄已有賬號,選擇右下角的未登錄,點進去可以選擇開通會員。首先,打開樂視視頻軟件,進入主頁面後,選擇右下角的“未登錄”,再“點擊...
-
微博如何移動好友分組
1、進入個人微博,點擊主頁裏的“關注”。或者從首頁裏邊的“關注”進入也是可以的。2、進入關注列表後自動顯示爲查看其他分組,這個時候你可以看到“批量管理”和“排序”兩個選項,你可以進行初步排序管理。3、單擊“查看其他分組”,裏面有你微博裏所有的分組,我們...