久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql存儲(chǔ)過程之創(chuàng)建(CREATE PROCEDURE)和調(diào)用(CALL)及變量創(chuàng)建(DECLARE)和賦值(SET)操作方法

共計(jì) 2477 個(gè)字符,預(yù)計(jì)需要花費(fèi) 7 分鐘才能閱讀完成。

行業(yè)資訊    
數(shù)據(jù)庫    
MySQL 數(shù)據(jù)庫    
mysql 存儲(chǔ)過程之創(chuàng)建(CREATE PROCEDURE)和調(diào)用(CALL)及變量創(chuàng)建(DECLARE)和賦值(SET)操作方法

mysql 存儲(chǔ)過程之創(chuàng)建(CREATE PROCEDURE)和調(diào)用(CALL)及變量創(chuàng)建(DECLARE)和賦值(SET)操作方法
發(fā)布時(shí)間:2020-10-21 05:54:07
來源:腳本之家
閱讀:178
作者:luyaran
欄目:MySQL 數(shù)據(jù)庫
自動(dòng)寫代碼機(jī)器人,免費(fèi)開通

本文實(shí)例講述了 mysql 存儲(chǔ)過程之創(chuàng)建(CREATE PROCEDURE)和調(diào)用(CALL)及變量創(chuàng)建(DECLARE)和賦值(SET)操作方法。分享給大家供大家參考,具體如下:

存儲(chǔ)過程創(chuàng)建(CREATE PROCEDURE)和調(diào)用(CALL)

這個(gè)咱就不說什么定義啦術(shù)語啦啥的,直接看著實(shí)例來慢慢熟悉它。完事呢,咱們來創(chuàng)建一個(gè)名為 GetAllProducts()的簡單存儲(chǔ)過程哈,這個(gè) GetAllProducts()存儲(chǔ)過程呢,主要是用來從 products 表中選擇所有產(chǎn)品。咱們來啟動(dòng) mysql 客戶端工具并鍵入以下命令:

DELIMITER //
 CREATE PROCEDURE GetAllProducts()
 BEGIN
 SELECT * FROM products;
 END //
DELIMITER ;

咱們來詳細(xì)看下上面的 sql 哈:

第一個(gè)命令是 DELIMITER //,它與存儲(chǔ)過程語法無關(guān)。DELIMITER 語句將標(biāo)準(zhǔn)分隔符 – 分號(hào) (;) 更改為://。在這種情況下,分隔符從分號(hào) (;) 更改為雙斜杠 //。為什么我們必須更改分隔符?因?yàn)槲覀兿雽⒋鎯?chǔ)過程作為整體傳遞給服務(wù)器,而不是讓 mysql 工具一次解釋每個(gè)語句。在 END 關(guān)鍵字之后,使用分隔符 // 來指示存儲(chǔ)過程的結(jié)束。最后一個(gè)命令 (DELIMITER;) 將分隔符更改回分號(hào)(;)。
使用 CREATE PROCEDURE 語句創(chuàng)建一個(gè)新的存儲(chǔ)過程。在 CREATE PROCEDURE 語句之后指定存儲(chǔ)過程的名稱。在這個(gè)示例中,存儲(chǔ)過程的名稱為:GetAllProducts,并把括號(hào)放在存儲(chǔ)過程的名字之后。
BEGIN 和 END 之間的部分稱為存儲(chǔ)過程的主體。將聲明性 SQL 語句放在主體中以處理業(yè)務(wù)邏輯。在這個(gè)存儲(chǔ)過程中,我們使用一個(gè)簡單的 select 查詢來查詢 products 表中的數(shù)據(jù)。

通過上面的 sql,咱們就算是創(chuàng)建了一個(gè)存儲(chǔ)過程了,完事我們就來調(diào)用存儲(chǔ)過程,來看下調(diào)用語法:

CALL STORED_PROCEDURE_NAME();

再來看下調(diào)用 GetAllProducts()存儲(chǔ)過程的具體 sql:

CALL GetAllProducts();

運(yùn)行上面的 sql 你就會(huì)看到你在存儲(chǔ)過程中的 sql 的運(yùn)行結(jié)果了。

變量創(chuàng)建(DECLARE)和賦值(SET)

我們都知道,變量是一個(gè)命名數(shù)據(jù)對(duì)象,變量的值可以在存儲(chǔ)過程執(zhí)行期間更改。我們接下來就嘗試使用存儲(chǔ)過程中的變量來保存直接 / 間接結(jié)果。這些變量是存儲(chǔ)過程的本地變量,但是我們得注意,變量必須先聲明后,才能使用它。而我們?nèi)绻诖鎯?chǔ)過程中聲明一個(gè)變量,可以使用 DECLARE 語句,來看下 sql 語法:

DECLARE variable_name datatype(size) DEFAULT default_value;

咱們來看下上面的 sql 具體是什么意思:

首先,在 DECLARE 關(guān)鍵字后面要指定變量名。變量名必須遵循 MySQL 表列名稱的命名規(guī)則。
其次,指定變量的數(shù)據(jù)類型及其大小。變量可以有任何 mysql 數(shù)據(jù)類型,如 INT,VARCHAR,DATETIME 等。
最后,當(dāng)聲明一個(gè)變量時(shí),它的初始值為 NULL。但是可以使用 DEFAULT 關(guān)鍵字為變量分配默認(rèn)值。

咱們接下來就來聲明一個(gè)名為 total_sale 的變量,數(shù)據(jù)類型為 INT,默認(rèn)值為 0。來看下 sql:

DECLARE total_sale INT DEFAULT 0;

其中,mysql 允許使用單個(gè) DECLARE 語句聲明共享相同數(shù)據(jù)類型的兩個(gè)或多個(gè)變量,來看個(gè) sql:

DECLARE x, y INT DEFAULT 0;

在上面的 sql 中,我們聲明了兩個(gè)整數(shù)變量 x 和 y,并將其默認(rèn)值設(shè)置為 0。完事呢,既然變量設(shè)置完了,接下來就該分配值了,我們?nèi)绻獮樽兞糠峙湟粋€(gè)值,可以使用 SET 語句,來看個(gè)實(shí)例:

DECLARE total_count INT DEFAULT 0;
SET total_count = 10;

在上面的 sql 語句中,我們分配 total_count 變量的值為 10。完事除了 SET 語句之外,還可以使用 SELECT INTO 語句將查詢的結(jié)果分配給一個(gè)變量,來看實(shí)例:

DECLARE total_products INT DEFAULT 0
SELECT COUNT(*) INTO total_products
FROM products

在上面的 sql 中,我們應(yīng)當(dāng)有如下理解:

首先,聲明一個(gè)名為 total_products 的變量,并將其值初始化為 0。
然后,使用 SELECT INTO 語句來分配值給 total_products 變量,從數(shù)據(jù)庫中的 products 表中選擇的產(chǎn)品數(shù)量。

我們知道一個(gè)變量有自己的范圍(作用域),它用來定義它的生命周期。但是如果在存儲(chǔ)過程中聲明一個(gè)變量,那么當(dāng)達(dá)到存儲(chǔ)過程的 END 語句時(shí),它將超出范圍,因此在其它代碼塊中無法訪問。

我們可以這么理解,如果我們在 BEGIN END 塊內(nèi)聲明一個(gè)變量,那么如果達(dá)到 END,它將超出范圍。我們還可以在不同的作用域中聲明具有相同名稱的兩個(gè)或多個(gè)變量,因?yàn)樽兞績H在自己的作用域中有效。但是,在不同范圍內(nèi)聲明具有相同名稱的變量不是很好的編程習(xí)慣。其中,以 @符號(hào)開頭的變量是會(huì)話變量,直到會(huì)話結(jié)束前它可用和可訪問。

更多關(guān)于 MySQL 相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL 存儲(chǔ)過程技巧大全》、《MySQL 常用函數(shù)大匯總》、《MySQL 日志操作技巧大全》、《MySQL 事務(wù)操作技巧匯總》及《MySQL 數(shù)據(jù)庫鎖相關(guān)技巧匯總》

希望本文所述對(duì)大家 MySQL 數(shù)據(jù)庫計(jì)有所幫助。

向 AI 問一下細(xì)節(jié)

丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-12-18發(fā)表,共計(jì)2477字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 如东县| 临汾市| 德兴市| 萨迦县| 闻喜县| 墨江| 若尔盖县| 永春县| 明水县| 南汇区| 白山市| 岐山县| 姜堰市| 陵水| 柳河县| 扎鲁特旗| 道真| 鄂尔多斯市| 南充市| 西和县| 巴林左旗| 河西区| 鸡东县| 桃园市| 武宣县| 邯郸县| 搜索| 恩施市| 九台市| 永康市| 浏阳市| 福建省| 巴中市| 丹凤县| 宜丰县| 剑河县| 军事| 丹凤县| 绵阳市| 大埔区| 吉隆县|