MySQL與存儲(chǔ)過程的相關(guān)資料
MySQL是“世界上最為流行的開放性數(shù)據(jù)庫(kù)”,至少對(duì)于MySQL Web站點(diǎn)會(huì)這樣。但無論MySQL如此流行,很多公司都對(duì)MySQL的使用抱有抵觸情緒。這種現(xiàn)象來自幾個(gè)原因,其中有些人錯(cuò)誤地認(rèn)為開放性源代碼只不過相當(dāng)于小孩子的積木游戲,而另一些人認(rèn)為任何免費(fèi)的東西都不會(huì)是好東西。也許這些想法都是誤解,然而有一種抱怨卻是合理的,即與其它對(duì)應(yīng)的產(chǎn)品不一樣,比如Oracle或者 DB2,MySQL不能夠支持存儲(chǔ)過程(stored procedures)。
最新的MySQL 5.0能夠支持存儲(chǔ)過程。如果你對(duì)存儲(chǔ)過程還沒有熟悉,那么你可以認(rèn)為它們只是存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器端的SQL命令和程序邏輯的集合。這些存儲(chǔ)過程可以被應(yīng)用程序調(diào)用,使得不同技術(shù)水平的開發(fā)人員能夠建立自己的SQL。
優(yōu)點(diǎn) 存儲(chǔ)過程能夠允許絕大部分的數(shù)據(jù)庫(kù)訪問邏輯與程序邏輯分離開來。使用存儲(chǔ)過程的其中一個(gè)間接的優(yōu)點(diǎn)是,程序的代碼變得更加小巧和容易理解。存儲(chǔ)過程的另一優(yōu)點(diǎn)是,SQL可以被預(yù)先編譯,由此提高了程序的速度。因?yàn)榇鎯?chǔ)過程包含程序邏輯,可以在數(shù)據(jù)庫(kù)服務(wù)器端更多地執(zhí)行更多的處理。同樣,當(dāng)執(zhí)行一個(gè)n-tier程序時(shí),存儲(chǔ)過程被用于將數(shù)據(jù)層與服務(wù)層分離開來。
安全性也是存儲(chǔ)過程的另一優(yōu)點(diǎn)。當(dāng)不能直接訪問表格時(shí),程序可以將執(zhí)行優(yōu)先級(jí)別分配給存儲(chǔ)過程。不幸的是,在這時(shí)候,MySQL不支持“授予執(zhí)行(GRANT EXECUTE)”。這就意味著除非程序具有訪問表格的權(quán)限,否則調(diào)用訪問相同表格的一個(gè)存儲(chǔ)過程也是不行的。
標(biāo)準(zhǔn) 與Oracle或者微軟的相關(guān)數(shù)據(jù)庫(kù)不一樣,MySQL和IBM的DB2能夠遵循存儲(chǔ)程序的SQL:2003語(yǔ)法。在理論上這意味著,如果數(shù)據(jù)庫(kù)結(jié)構(gòu)相同,存儲(chǔ)程序可以在不同數(shù)據(jù)庫(kù)中使用。
可支持的SQL聲明 雖然MySQL不能支持存儲(chǔ)程序,但它卻可以完成很多任務(wù),如表A所示。除此之外,MySQL的stored procedure documentation(存儲(chǔ)過程文檔)描述了可用于Oracle的PL/SQL和SQL Server的 T-SQL的很多兼容特性。我對(duì)存儲(chǔ)過程支持的印象是,它執(zhí)行比較緩慢,目的是避免任何影響大型軟件開發(fā)工程的步驟。
表A
|
MySQL 5.0支持存儲(chǔ)過程語(yǔ)句。
重要的是,請(qǐng)記住當(dāng)前的MySQL對(duì)存儲(chǔ)過程的支持沒有Oracle,SQL Server或者DB2的成熟。同樣記住,具有少量的特性但卻操作良好,這比具有大量特性但卻錯(cuò)誤百出的強(qiáng)得多,這一點(diǎn)更加重要。我知道這是一個(gè)比較奇怪的概念,但社區(qū)里的很多人有時(shí)候卻被其它一些概念所迷惑。
- MySQL存儲(chǔ)過程例子(包含事務(wù),輸出參數(shù),嵌套調(diào)用)
- mysql 存儲(chǔ)過程中變量的定義與賦值操作
- MySQL 有輸入輸出參數(shù)的存儲(chǔ)過程實(shí)例
- mysql 動(dòng)態(tài)執(zhí)行存儲(chǔ)過程語(yǔ)句
- mysql 教程 存儲(chǔ)過程
- mysql 存儲(chǔ)過程的問題
- MySQL 存儲(chǔ)過程和"Cursor"的使用方法
- MySQL5創(chuàng)建存儲(chǔ)過程的示例
- MySQL5.0存儲(chǔ)過程教程
- php調(diào)用mysql存儲(chǔ)過程
- MySQL 存儲(chǔ)過程的基本用法介紹
相關(guān)文章
MySQL 8.2 Command Line Client打開時(shí)一閃而過閃退問題
MySQL8.2安裝成功后,發(fā)現(xiàn)打開MySQL 8.0 Command Line Client時(shí)出現(xiàn)一閃而過,打不開的情況,所以下面這篇文章主要給大家介紹了關(guān)于MySQL 8.2 Command Line Client打開時(shí)一閃而過閃退問題的解決,需要的朋友可以參考下2024-01-01MySQL定時(shí)任務(wù)不能正常執(zhí)行的原因分析及解決方法
大家好,本篇文章主要講的是MySQL定時(shí)任務(wù)不能正常執(zhí)行的原因分析及解決方法,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12MySQL與PHP的基礎(chǔ)與應(yīng)用專題之?dāng)?shù)據(jù)查詢
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL?AB?公司開發(fā),屬于?Oracle?旗下產(chǎn)品。MySQL?是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,本系列將帶你掌握php與mysql的基礎(chǔ)應(yīng)用,本篇從數(shù)據(jù)的查詢開始2022-02-02MySQL優(yōu)化中B樹索引知識(shí)點(diǎn)總結(jié)
在本文里我們給大家整理了關(guān)于MySQL優(yōu)化中B樹索引的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。2019-02-02MySQL數(shù)據(jù)庫(kù)用戶權(quán)限管理
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)用戶權(quán)限管理,文章主要內(nèi)容就是在不同的項(xiàng)目中,給不同的角色(開發(fā)者)不同的操作權(quán)限,保證數(shù)據(jù)庫(kù)數(shù)據(jù)的安全,需要的朋友可以參考一下2022-06-06解決MySQL登錄報(bào)錯(cuò)1045-Access?denied?for?user?'root'@
這篇文章主要給大家介紹了關(guān)于解決MySQL登錄報(bào)錯(cuò)1045-Access?denied?for?user?‘root‘@‘‘(using?password:YES)的相關(guān)資料,文中一步步將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07