国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL存儲過程和函數的操作(十二)

2024-07-24 12:53:45
字體:
來源:轉載
供稿:網友

數據庫對象表時存儲和操作數據的邏輯結構,而數據庫對象存儲過程和函數,則是用來實現將一組關于表操作的sql語句當作一個整體來執行。在數據庫系統中,當調用存儲過程和函數時,則會執行這些對象中所設置的sql語句組,從而實現相應功能。
1. 為什么使用存儲過程和函數的操作 
    有時針對表的一個完整操作往往不是單條sql語句就可以實現的,而是需要一組sql語句來實現。在具體應用當中,一個完整的操作會包含多條sql語句,在執行過程中需要根據前面sql語句的執行結果有選擇地執行后面sql語句。
    存儲過程和函數可以簡單理解為一條或多條sql語句的集合。存儲過程和函數就是事先經過編譯并存儲在數據庫中的一段sql語句集合。
    存儲過程和函數有什么區別呢?這兩者的主要區別在于函數必須有返回值,而存儲過程則沒有。存儲過程的參數類型遠遠多于函數的參數類型。 

關于存儲過程和函數的優點如下:
      1. 存儲過程和函數允許標準組件式編程,提高了sql語句的重用性、共享性和可移植性。
      2. 存儲過程和函數能夠實現較快的執行速度,能夠減少網絡流量。
      3. 存儲過程和函數可以作為一種安全機制來利用。 

關于存儲過程和函數的缺點如下:
      1. 存儲過程和函數的編寫比單句sql語句復雜,需要用戶有更高的技能和更豐富的經驗。
      2. 在編寫存儲過程和函數時,需要創建這些數據庫對象的權限。=

2. 創建存儲過程和函數 
2.1 創建存儲過程語法形式:

語法形式如下:

create procedure procedure_name([procedure_parameter[,...]]) [characteristic...] routine_body//說明:procedure_name參數表示所要創建的存儲過程的名字,procedure_parameter參數表示存儲過程的參數,characteristic參數表示存儲過程的特性,routine_body參數表示存儲過程的sql語句代碼,可以用begin...end來標志sql語句的開始和結束。//注意:在具體創建存儲過程時,存儲過程名不能和已經存在的存儲過程名重復,推薦存儲過程名為procedure_xxx或者proce_xxx;//procedure_parameter 中每個參數的語法形式為:[IN|OUT|INOUT] parameter_name type//該語句中每個參數由三部分組成,分別為輸入/輸出類型、參數名和參數類型。

characteristic參數的取值為:
language sql
|[not] deterministic
|{constains sql | no sql | reads sql data|modifies sql data}
|sql security {definer | invoker}
|comment 'string'

    1. language sql,表示存儲過程的routine_body部分由sql語言的語句組成。為mysql軟件所有默認的語句。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桃源县| 陆良县| 林口县| 卢龙县| 池州市| 颍上县| 于田县| 宣恩县| 宁远县| 晋江市| 南澳县| 永泰县| 桓仁| 凌源市| 丹巴县| 扬州市| 唐海县| 祁连县| 安丘市| 忻州市| 杭锦后旗| 宜春市| 青田县| 新竹市| 富民县| 普定县| 洪江市| 涿州市| 云阳县| 全南县| 绥棱县| 福贡县| 绵竹市| 杨浦区| 长葛市| 长治县| 万源市| 岗巴县| 漯河市| 兴城市| 德令哈市|