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

首頁 > 數據庫 > MySQL > 正文

MySql存儲過程與函數詳解

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

存儲過程和函數是在數據庫中定義一些SQL語句的集合,然后直接調用這些存儲過程和函數來執行已經定義好的SQL語句。存儲過程和函數可以避免開發人員重復的編寫相同的SQL語句。而且,存儲過程和函數是在MySQL服務器中存儲和執行的,可以減少客戶端和服務器端的數據傳輸。
一、存儲過程
1.1、基本語法

CREATE PROCEDURE sp_name ([proc_parameter[,...]]) 
 
  [characteristic ...] routine_body  

Sp_name:存儲過程的名稱,默認在當前數據庫中創建。這個名稱應當盡量避免與MySQL的內置函數相同的名稱

 Proc_parameter:存儲過程的參數列表
      格式[IN|OUT|INOUT]param_name type
      Param_name為參數名,type為參數的數據類型。多個參數彼此間用逗號分隔。輸入參數、輸出參數和輸入/輸出參數,分別用in/out/inout標識。參數的取名不要與數    據表的列名相同。
Characteristic:存儲過程的某些特征設定,分別介紹
        1 COMMENT'string':用于對存儲過程的描述,其中string為描述內容,comment為關鍵字。
        2 LANGUAGE SQL:指明編寫這個存儲過程的語言為SQL語言。這個選項可以不指定。
        3 DETERMINISTIC:表示存儲過程對同樣的輸入參數產生相同的結果;NOT DETERMINISTIC,則表示會產生不確定的結果(默認)。
        4 contains sql | no sql | reads sql data | modifies sql data Contains sql表示存儲過程包含讀或寫數據的語句(默認)
        No sql表示不包含sql語句
        Reads sql data表示存儲過程只包含讀數據的語句
        Modifies sql data 表示存儲過程只包含寫數據的語句
        5 sql security:這個特征用來指定存儲過程使用創建該存儲過程的用戶(definer)的許可來執行,還是使用調用者(invoker)的許可來執行。默認是definer
    Routine_body:存儲過程的主體部分,包含了在過程調用的時候必須執行的sql語句。以begin開始,以end結束。如果存儲過程體中只有一條sql語句,可以省略begin-end標志。
1.2、數據準備

CREATE TABLE t_user ( USER_ID INT NOT NULL AUTO_INCREMENT, USER_NAME CHAR(30) NOT NULL, USER_PASSWORD CHAR(10) NOT NULL, USER_EMAIL CHAR(30) NOT NULL, PRIMARY KEY (USER_ID), INDEX IDX_NAME (USER_NAME) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

然后這是插入的一些數據:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大洼县| 灵山县| 确山县| 教育| 斗六市| 麻阳| 崇左市| 宁津县| 邯郸市| 建始县| 休宁县| 六枝特区| 正定县| 闸北区| 东兴市| 民勤县| 无为县| 乐安县| 信阳市| 花垣县| 南乐县| 新干县| 吉林省| 荃湾区| 和田县| 汕头市| 安泽县| 比如县| 新郑市| 青铜峡市| 龙南县| 绍兴市| 丘北县| 保康县| 通渭县| 宕昌县| 南郑县| 横山县| 宜宾市| 宜君县| 旬阳县|