如何建立MySQL存儲(chǔ)過(guò)程
在復(fù)雜的系統(tǒng)中,MySQL數(shù)據(jù)庫(kù)使用存儲(chǔ)過(guò)程來(lái)完成復(fù)雜的計(jì)算過(guò)程,將記錄集返回給用戶(hù)客服端進(jìn)行處理或顯示數(shù)據(jù)。下面分享一個(gè)建立存儲(chǔ)過(guò)程的過(guò)程。 登錄SQLyog工具連接到MySQL數(shù)據(jù)庫(kù) 首先,使
在復(fù)雜的系統(tǒng)中,MySQL數(shù)據(jù)庫(kù)使用存儲(chǔ)過(guò)程來(lái)完成復(fù)雜的計(jì)算過(guò)程,將記錄集返回給用戶(hù)客服端進(jìn)行處理或顯示數(shù)據(jù)。下面分享一個(gè)建立存儲(chǔ)過(guò)程的過(guò)程。
登錄SQLyog工具連接到MySQL數(shù)據(jù)庫(kù)
首先,使用SQLyog工具登錄到MySQL數(shù)據(jù)庫(kù),并將test數(shù)據(jù)庫(kù)作為當(dāng)前工作狀態(tài)的數(shù)據(jù)庫(kù)。
創(chuàng)建存儲(chǔ)過(guò)程
在“存儲(chǔ)過(guò)程”選項(xiàng)中點(diǎn)擊右鍵,選擇創(chuàng)建存儲(chǔ)過(guò)程,然后輸入存儲(chǔ)過(guò)程的名稱(chēng)。
定義存儲(chǔ)過(guò)程參數(shù)
在創(chuàng)建存儲(chǔ)過(guò)程的基本機(jī)構(gòu)之后,定義存儲(chǔ)過(guò)程的傳入?yún)?shù)。例如,可以定義兩個(gè)int類(lèi)型的參數(shù)和兩個(gè)varchar類(lèi)型的參數(shù)。然后,將兩個(gè)int參數(shù)相加,并將兩個(gè)varchar參數(shù)連接成一個(gè)字符串。
PROCEDURE `test`.`gc`(a INT, b INT, c VARCHAR(10), d VARCHAR(10))
編寫(xiě)存儲(chǔ)過(guò)程計(jì)算過(guò)程
在begin和end之間編寫(xiě)存儲(chǔ)過(guò)程的計(jì)算過(guò)程??梢远x一個(gè)int類(lèi)型的變量和一個(gè)varchar(20)的變量,并將計(jì)算結(jié)果存入這兩個(gè)變量中。
BEGIN DECLARE ab INT; DECLARE cd VARCHAR(20); SET ab a b; SET cd CONCAT(c, d); END$$
將計(jì)算結(jié)果返回到客戶(hù)端
使用SELECT語(yǔ)句將計(jì)算結(jié)果返回到客戶(hù)端。在SELECT語(yǔ)句中,使用AS關(guān)鍵字為變量指定列名。
SELECT ab AS 'a b', cd AS 'c d';
運(yùn)行建立存儲(chǔ)過(guò)程的命令
運(yùn)行建立存儲(chǔ)過(guò)程的命令,如果沒(méi)有錯(cuò)誤,則將存儲(chǔ)過(guò)程保存到數(shù)據(jù)庫(kù)中。
如何調(diào)用存儲(chǔ)過(guò)程
要調(diào)用已經(jīng)建立的存儲(chǔ)過(guò)程,可以新建一個(gè)查詢(xún),在查詢(xún)中輸入CALL命令,然后輸入存儲(chǔ)過(guò)程的名稱(chēng)和參數(shù)。
CALL gc(10, 20, 'abc', 'efd');
查看執(zhí)行結(jié)果
最后,查看執(zhí)行結(jié)果,可以得到存儲(chǔ)過(guò)程計(jì)算的結(jié)果。