存儲(chǔ)過(guò)程的優(yōu)點(diǎn):
存儲(chǔ)過(guò)程: 存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器端的SQL命令和程序邏輯的集合
存儲(chǔ)過(guò)程能夠允許絕大部分的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)邏輯與程序邏輯分離開(kāi)來(lái)。使用存儲(chǔ)過(guò)程的其中一個(gè)間接的優(yōu)點(diǎn)是,程序的代碼變得更加小巧和容易理解。存儲(chǔ)過(guò)程的另一優(yōu)點(diǎn)是,SQL可以被預(yù)先編譯,由此提高了程序的速度。因?yàn)榇鎯?chǔ)過(guò)程包含程序邏輯,可以在數(shù)據(jù)庫(kù)服務(wù)器端更多地執(zhí)行更多的處理。同樣,當(dāng)執(zhí)行一個(gè)n-tier程序時(shí),存儲(chǔ)過(guò)程被用于將數(shù)據(jù)層與服務(wù)層分離開(kāi)來(lái)。
安全性也是存儲(chǔ)過(guò)程的另一優(yōu)點(diǎn)。當(dāng)不能直接訪(fǎng)問(wèn)表格時(shí),程序可以將執(zhí)行優(yōu)先級(jí)別分配給存儲(chǔ)過(guò)程。不幸的是,在這時(shí)候,MySQL不支持“授予執(zhí)行(GRANT EXECUTE)”。這就意味著除非程序具有訪(fǎng)問(wèn)表格的權(quán)限,否則調(diào)用訪(fǎng)問(wèn)相同表格的一個(gè)存儲(chǔ)過(guò)程也是不行的。使用這一特性有點(diǎn)像在做一個(gè)很有趣的賭博。
表A
聲明
描述
CREATE PROCEDURE
建立一個(gè)存放在MySQL數(shù)據(jù)庫(kù)的表格的存儲(chǔ)過(guò)程。
CREATE FUNCTION
建立一個(gè)用戶(hù)自定義的函數(shù),尤其是返回?cái)?shù)據(jù)的存儲(chǔ)過(guò)程。
ALTER PROCEDURE
更改用CREATE PROCEDURE 建立的預(yù)先指定的存儲(chǔ)過(guò)程,其不會(huì)影響相關(guān)存儲(chǔ)過(guò)程或存儲(chǔ)功能。.
ALTER FUNCTION
更改用CREATE FUNCTION 建立的預(yù)先指定的存儲(chǔ)過(guò)程,其不會(huì)影響相關(guān)存儲(chǔ)過(guò)程或存儲(chǔ)功能。.
DROP PROCEDURE
從MySQL的表格中刪除一個(gè)或多個(gè)存儲(chǔ)過(guò)程。
DROP FUNCTION
從MySQL的表格中刪除一個(gè)或多個(gè)存儲(chǔ)函數(shù)。
SHOW CREATE PROCEDURE
返回使用CREATE PROCEDURE 建立的預(yù)先指定的存儲(chǔ)過(guò)程的文本。這一聲明是SQL:2003規(guī)范的一個(gè)MySQL擴(kuò)展。
SHOW CREATE FUNCTION
返回使用CREATE FUNCTION建立的預(yù)先指定的存儲(chǔ)過(guò)程的文本。這一聲明是SQL:2003規(guī)范的一個(gè)MySQL擴(kuò)展。
SHOW PROCEDURE STATUS
返回一個(gè)預(yù)先指定的存儲(chǔ)過(guò)程的特性,包括名稱(chēng)、類(lèi)型、建立者、建立日期、以及更改日期。這一聲明是SQL:2003規(guī)范的一個(gè)MySQL擴(kuò)展。
SHOW FUNCTION STATUS
返回一個(gè)預(yù)先指定的存儲(chǔ)函數(shù)的特性,包括名稱(chēng)、類(lèi)型、建立者、建立日期、以及更改日期。這一聲明是SQL:2003規(guī)范的一個(gè)MySQL擴(kuò)展。
CALL
調(diào)用一個(gè)使用CREATE PROCEDURE建立的預(yù)先指定的存儲(chǔ)過(guò)程。
BEGIN ... END
包含一組執(zhí)行的多聲明。
DECLARE
用于指定當(dāng)?shù)刈兞?、環(huán)境、處理器,以及指針。
SET
用于更改當(dāng)?shù)睾腿址?wù)器變量的值。
SELECT ... INTO
用于存儲(chǔ)顯示變量的縱列。
OPEN
用于打開(kāi)一個(gè)指針。
FETCH
使用特定指針來(lái)獲得下一列。
CLOSE
用于關(guān)閉和打開(kāi)指針。
IF
一個(gè)An if-then-else-end if 聲明。
CASE ... WHEN
一個(gè) case聲明的結(jié)構(gòu)
LOOP
一個(gè)簡(jiǎn)單的循環(huán)結(jié)構(gòu);可以使用LEAVE 語(yǔ)句來(lái)退出。
LEAVE
用于退出IF,CASE,LOOP,REPEAT以及WHILE 語(yǔ)句。
ITERATE
用于重新開(kāi)始循環(huán)。
REPEAT
在結(jié)束時(shí)測(cè)試的循環(huán)。
WHILE
在開(kāi)始時(shí)測(cè)試的循環(huán)。
RETURNS
返回一個(gè)存儲(chǔ)過(guò)程的值。
MySQL 5.0支持存儲(chǔ)過(guò)程語(yǔ)句。
php調(diào)用mysql存儲(chǔ)過(guò)程和函數(shù)的方法 http://dev.csdn.net/develop/article/69/69467.shtm
http://www.knowsky.com/300482.html
http://www.kingmx.com/article/15234
http://www.linuxmine.com/3449.html
php調(diào)用存儲(chǔ)過(guò)程返回結(jié)果集 http://www.kingmx.com/article/15210
mysql存儲(chǔ)過(guò)程學(xué)習(xí)總結(jié)-操作符 http://dev.csdn.net/author/hbcui1984/c87ea0e6c3c2449e8c588c30ac43b0f6.html
mysql 5.0存儲(chǔ)過(guò)程學(xué)習(xí)總結(jié) http://dev.csdn.net/author/hbcui1984/f15b1de4f94a486bac645c995b0d6ebf.html
mysql存儲(chǔ)過(guò)程基本函數(shù) http://dev.csdn.net/author/hbcui1984/34d8b6f3592649ad85ad0956fd945ab3.html
MYSQL出錯(cuò)代碼列表 http://dev.csdn.net/author/hbcui1984/9ba0a6dc787e456d98bd5e510cee0951.html
Mysql5.0 存儲(chǔ)過(guò)程 http://dev.csdn.net/develop/article/84/84616.shtm
PHP調(diào)用MySQL存儲(chǔ)過(guò)程 http://www.kingmx.com/article.php?id=15237
MySQL5存儲(chǔ)過(guò)程編寫(xiě)實(shí)踐 http://www.linuxdby.com/html/database/mysql/20070423/10460.html
高手心得:提高M(jìn)ySQL性能的方法 http://www.linuxdby.com/html/database/mysql/20070423/10432.html
MySQL中你需要注意的幾個(gè)SQL語(yǔ)句 http://www.linuxdby.com/html/database/mysql/20070423/10510.html
通過(guò)分區(qū)(Partition)提升MySQL性能 http://dev.csdn.net/develop/article/84/84508.shtm
聯(lián)系客服