最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

SQL存儲(chǔ)過(guò)程

2021-04-30 11:15 作者:愛(ài)數(shù)據(jù)分析社區(qū)  | 我要投稿

存儲(chǔ)過(guò)程

  1. 什么是存儲(chǔ)過(guò)程

  2. 創(chuàng)建調(diào)用與刪除

  3. 變量聲明

  4. 參數(shù)定義

  5. 流程語(yǔ)句

  6. 查看存儲(chǔ)過(guò)程

什么是存儲(chǔ)過(guò)程

創(chuàng)建一組為了完成特定功能的SQL語(yǔ)句集

之后需要用到時(shí)就可以直接用存儲(chǔ)過(guò)程名使用

創(chuàng)建的存儲(chǔ)過(guò)程保存在數(shù)據(jù)庫(kù)的數(shù)據(jù)字典中

創(chuàng)建調(diào)用與刪除

/* 創(chuàng)建 */DELIMITER $$ CREATE PROCEDURE 名稱(chēng)()BEGIN 語(yǔ)句 END $$ DELIMITER ;/* 調(diào)用 */call 名稱(chēng)();/* 刪除 */drop pROCedure 名稱(chēng);

  • DELIMITER語(yǔ)句將標(biāo)準(zhǔn)分隔符 - 分號(hào)(;)更改為:$$,這樣就不會(huì)被語(yǔ)句中的分號(hào)而結(jié)束,而是等到$$ 。這樣才能保證整個(gè)存儲(chǔ)過(guò)程一起提交

  • 創(chuàng)建完之后可以再改回到分號(hào)

變量聲明

在存儲(chǔ)過(guò)程中聲明一個(gè)變量

  • DECLARE 變量名 數(shù)據(jù)類(lèi)型(大小) DEFAULT 默認(rèn)值;

/* 聲明整形變量a默認(rèn)值為0 */DECLARE a INT DEFAULT 0;/* 聲明多個(gè)同類(lèi)型 */DECLARE x, y INT DEFAULT 0;

分配變量值

  • 要為變量分配一個(gè)值,可以使用SET語(yǔ)句

SET total_count = 10 ;

  • 使用SELECT INTO語(yǔ)句將查詢(xún)的結(jié)果賦值給一個(gè)變量

SELECT COUNT(*) INTO a FROM 表 ;

參數(shù)定義

參數(shù)的三種類(lèi)型

  • IN:表示調(diào)用者向過(guò)程傳入值(傳入值可以是字面量或變量)

  • OUT:表示過(guò)程向調(diào)用者傳出值

  • INOUT:INOUT參數(shù)是IN和OUT參數(shù)的組合。

delimiter $$ CREATE pROCedure name1(in x int ,OUT y int)BEGIN SET y = x+x;END$$ delimiter ;set ?@b=3;CALL name(5,@b);SELECT @b;結(jié)果為10

定義參數(shù)

  • create produce name(參數(shù)類(lèi)型 參數(shù)名稱(chēng) 數(shù)據(jù)類(lèi)型(大?。?

流程語(yǔ)句

  • IF語(yǔ)句

IF 布爾式 THEN ? 操作語(yǔ)句;END IF; ?IF 布爾式 THEN ? 操作語(yǔ)句;ELSE ? 操作語(yǔ)句;END IF;

  • CASE語(yǔ)句

CASE 一變量 WHEN 變量滿(mǎn)足條件1 THEN 相應(yīng)語(yǔ)句 WHEN 變量滿(mǎn)足條件2 THEN 相應(yīng)語(yǔ)句...ELSE 相應(yīng)語(yǔ)句 END CASE;

  • 循環(huán)

WHILE 條件判斷 DO...相應(yīng)語(yǔ)句...END WHILEREPEAT...相應(yīng)語(yǔ)句...UNTIL 條件判斷 END REPEATset autocommit = 0;循環(huán)語(yǔ)句塊 commit;/* 在循環(huán)首尾加上這兩條語(yǔ)句,可以避免循環(huán)中語(yǔ)句一條一條的執(zhí)行。 從而提高效率,將循環(huán)完畢后所有要執(zhí)行的語(yǔ)句一起執(zhí)行 */

查看存儲(chǔ)過(guò)程

查看所有存儲(chǔ)過(guò)程

SHOW PROCEDURE STATUS;

查看指定數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程

SHOW PROCEDURE STATUS WHERE db = '數(shù)據(jù)庫(kù)名';

查看指定存儲(chǔ)過(guò)程源代碼

SHOW CREATE PROCEDURE 存儲(chǔ)過(guò)程名

自定義函數(shù)

CREATE FUNCTION 函數(shù)名(a int) Returns int

函數(shù)對(duì)比存儲(chǔ)過(guò)程

  • 不能用臨時(shí)表,只能用表變量,有些函數(shù)不能用,存儲(chǔ)過(guò)程限制少

  • 存儲(chǔ)過(guò)程處理的功能比較復(fù)雜,而函數(shù)實(shí)現(xiàn)的功能針對(duì)性強(qiáng),

  • 存儲(chǔ)過(guò)程可以執(zhí)行修改表的操作,但是函數(shù)不能執(zhí)行一組修改全局?jǐn)?shù)據(jù)庫(kù)狀態(tài)的操作

  • 存儲(chǔ)過(guò)程可以返回參數(shù),如記錄集,函數(shù)只能返回值或者表對(duì)象。存儲(chǔ)過(guò)程的參數(shù)有in,out,inout三種,函數(shù)只有in,存儲(chǔ)過(guò)程聲明時(shí)不需要返回類(lèi)型,而函數(shù)需要描述返回類(lèi)型,且函數(shù)中必須包含一個(gè)有效的return語(yǔ)句

  • 存儲(chǔ)過(guò)程一般是作為獨(dú)立部分來(lái)執(zhí)行,而函數(shù)可以作為查詢(xún)語(yǔ)句的一個(gè)部分來(lái)調(diào)用,由于函數(shù)可以返回一個(gè)表對(duì)象,所以在查詢(xún)中位于from關(guān)鍵字后面,sql語(yǔ)句中不可以含有存儲(chǔ)過(guò)程


end

作者:IT那個(gè)小筆記



SQL存儲(chǔ)過(guò)程的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
额尔古纳市| 临猗县| 阜阳市| 阿合奇县| 五峰| 高台县| 修文县| 甘孜县| 鹤峰县| 涞源县| 英吉沙县| 浦东新区| 邹城市| 天全县| 灌阳县| 兴化市| 招远市| 黎川县| 滕州市| 寿宁县| 海晏县| 汝阳县| 广灵县| 大渡口区| 长治市| 岗巴县| 分宜县| 兖州市| 石阡县| 扎鲁特旗| 大关县| 江山市| 潞城市| 临漳县| 荆门市| 四子王旗| 磴口县| 昭平县| 石河子市| 虹口区| 泸西县|