MySQL 5.0新特性教程之存儲過程不得不看
MySQL 5.0 新特性教程的編寫主要是為需要對5.0版本新特性的MySQL(和PHP搭配之***組合)有更好的了解的老用戶。簡單的來說就是介紹了“存儲過程、觸發(fā)器、視圖與信息架構(gòu)視圖”,在此感謝譯者陳朋奕的努力。
希望這本書能像內(nèi)行專家那樣與您進(jìn)行對話,用簡單的問題、例子讓你學(xué)到需要的知識。為了達(dá)到這樣的目的,我會從每一個(gè)細(xì)節(jié)開始慢慢的為大家建立概念,***會給大家展示較大的實(shí)用例,在學(xué)習(xí)之前也許大家會認(rèn)為這個(gè)用例很難,但是只要跟著課程去學(xué),相信很快就能掌握。
Conventions and Styles 約定和編程風(fēng)格
每次我想要演示實(shí)際代碼時(shí),我會對MySQL(和PHP搭配之***組合)客戶端的屏幕就出現(xiàn)的代碼進(jìn)行調(diào)整,將字體改成Courier,使他們看起來與普通文本不一樣。
在這里舉個(gè)例子:MySQL(和PHP搭配之***組合)> DROP FUNCTION f;Query OK, 0 rows affected (0.00 sec)
如果實(shí)例比較大,則需要在某些行和段落間加注釋,同時(shí)我會用將“ <--”符號放在頁面的右邊以表示強(qiáng)調(diào)。
例如:
- MySQL(和PHP搭配之***組合)> CREATE PROCEDURE p ()-> BEGIN/* This procedure does nothing */ <---> END;//Query OK, 0 rows affected (0.00 sec)
有時(shí)候我會將例子中的"MySQL(和PHP搭配之***組合)> "和"-> "這些系統(tǒng)顯示去掉,你可以直接將代碼復(fù)制到MySQL(和PHP搭配之***組合)客戶端程序中(如果你現(xiàn)在所讀的不是電子版的,可以在MySQL(和PHP搭配之***組合).com網(wǎng)站下載相關(guān)腳本)所以的例子都已經(jīng)在Suse 9.2 Linux、MySQL(和PHP搭配之***組合) 5.0.3公共版上測試通過。
在您閱讀本書的時(shí)候,MySQL(和PHP搭配之***組合)已經(jīng)有更高的版本,同時(shí)能支持更多OS了,包括Windows,Sparc,HP-UX。因此這里的例子將能正常的運(yùn)行在您的電腦上。但如果運(yùn)行仍然出現(xiàn)故障,可以咨詢你認(rèn)識的資深MySQL(和PHP搭配之***組合)用戶,以得到長久的支持和幫助。
所以存儲過程是可復(fù)用的組件!想象一下如果你改變了主機(jī)的語言,這對存儲過程不會產(chǎn)生影響,因?yàn)樗菙?shù)據(jù)庫邏輯而不是應(yīng)用程序。存儲過程是可以移植的!當(dāng)你用SQL編寫存儲過程時(shí),你就知道它可以運(yùn)行在MySQL(和PHP搭配之***組合)支持的任何平臺上,不需要你額外添加運(yùn)行環(huán)境包,也不需要為程序在操作系統(tǒng)中執(zhí)行設(shè)置許可,或者為你的不同型號的電腦存儲過程將被保存!如果你編寫好了一個(gè)程序,例如顯示銀行事物處理中的支票撤消,那想要了解支票的人就可以找到你的程序。
它會以源代碼的形式保存在數(shù)據(jù)庫中。這將使數(shù)據(jù)和處理數(shù)據(jù)的進(jìn)程有意義的關(guān)聯(lián)這可能跟你在課上聽到的規(guī)劃論中說的一樣。存儲過程可以遷移!
MySQL(和PHP搭配之***組合)完全支持SQL 2003標(biāo)準(zhǔn)。某些數(shù)據(jù)庫(如DB2、Mimer)同樣支持。但也有部分不支持的,如Oracle(大型網(wǎng)站數(shù)據(jù)庫平臺)、sql server(WINDOWS平臺上強(qiáng)大的數(shù)據(jù)庫平臺)不支持。我們將會給予足夠幫助和工具,使為其他DBMS編寫的代碼能更容易轉(zhuǎn)移到MySQL(和PHP搭配之***組合)上。
Setting up with MySQL(和PHP搭配之***組合) 5.0 設(shè)置并開始MySQLMySQL 5.0服務(wù)
通過
- MySQL(和PHP搭配之***組合)_fix_privilege_tables
或者
~/MySQL(和PHP搭配之***組合)-5.0/scripts/MySQL(和PHP搭配之***組合)_install_db
來開始MySQL(和PHP搭配之***組合)服務(wù)
作為我們練習(xí)的準(zhǔn)備工作的一部分,我假定MySQL(和PHP搭配之***組合) 5.0已經(jīng)安裝。如果沒有數(shù)據(jù)庫管理員為你安裝好數(shù)據(jù)庫以及其他軟件,你就需要自己去安裝了。不過你很容易忘掉一件事,那就是你需要有一個(gè)名為MySQL(和PHP搭配之***組合).proc的表。
在安裝了***版本后,你必須運(yùn)行
- MySQL(和PHP搭配之***組合)_fix_privilege_tables
或者
MySQL(和PHP搭配之***組合)_install_db
(只需要運(yùn)行其中一個(gè)就夠了)——不然存儲過程將不能工作。我同時(shí)啟用在root身份后運(yùn)行一個(gè)非正式的SQL腳本,如下:
MySQL(和PHP搭配之***組合)> source/home/pgulutzan/MySQL(和PHP搭配之***組合)-5.0/scripts/MySQL(和PHP搭配之***組合)_prepare_privilege_tables_for_5.sql
Starting the MySQL(和PHP搭配之***組合) Client 啟動(dòng)MySQL(和PHP搭配之***組合)客戶端
這是我啟動(dòng)MySQL(和PHP搭配之***組合)客戶端的方式。你也許會使用其他方式,如果你使用的是二進(jìn)制版本或者是Windows系統(tǒng)的電腦,你可能會在其他子目錄下運(yùn)行以下程序:
- easy@PHPv:~> /usr/local/MySQL(和PHP搭配之***組合)/bin/MySQL(和PHP搭配之***組合) --user=root
- Welcome to the MySQL(和PHP搭配之***組合) monitor. Commands end with ; or \g.
- Your MySQL(和PHP搭配之***組合) connection id is 1 to server version: 5.0.3-alpha-debug
- Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
在演示中,我將會展示以root身份登陸后的MySQL(和PHP搭配之***組合)客戶端返回的結(jié)果,這樣意味著我有極大的特權(quán)。
以上的相關(guān)內(nèi)容就是對MySQL 5.0新特性教程 存儲過程的介紹,望你能有所收獲。
【編輯推薦】
- MySQL數(shù)據(jù)庫來支持簡單的圖形計(jì)數(shù)器
- MySQL5的基礎(chǔ)知識與常見問題
- MySQL數(shù)據(jù)庫常見問題大匯總
- MySQL查詢優(yōu)化系列之MySQL查詢優(yōu)化器
- MySQL數(shù)據(jù)庫的相關(guān)論壇設(shè)計(jì)的系統(tǒng)架構(gòu)