《名師講壇:Oracle SQL入門與實戰經典》是小說式的Oracle SQL入門教材。書中使用簡單、生動的生活例子來解釋復雜的計算機和數據庫概念。
《名師講壇:Oracle SQL入門與實戰經典》又是Oracle SQL的實用教材,內容覆蓋了OCP(Oracle認證專家)考試的幾乎全部內容,但重點放在實際工作能力的訓練,每章中都有大量的例題,而且每道題都給出了答案。為了幫助讀者理解,許多概念和例題都給出了商業應用背景,還有很多例題可以不加修改或略加修改即可應用于實際工作中。所有圖形操作和比較難的命令行操作都附有教學視頻,讀者可以在隨書光盤中找到,另外一些較難的命令已經被做成了正文或SQL腳本文件存在光盤中,讀者可以通過復制和粘貼來運行。簡而言之,《名師講壇:Oracle SQL入門與實戰經典》的顯著特點是: 1.一本小說式、可輕松閱讀的Oracle SQL教材; 2.配備了43講視頻,Oracle專家向您面對面講解; 3.適合于OCP認證學習; 4.適合于Oracle 11g、10g、9i、8等多個版本; 5.給出了具體的商業應用背景,增強了實戰性。
《名師講壇:Oracle SQL入門與實戰經典》是Oracle SQL的實用教材。雖然它覆蓋了OCP這部分考試的幾乎全部內容,但重點放在實際工作能力的訓練。《名師講壇:Oracle SQL入門與實戰經典》全面而詳細地介紹了關系數據庫的標準操作語言和SQL語言,包括數據查詢語言、DML(數據操作語言)、DDL(數據定義語言)、DCL(數據控制語言)和事務處理。《名師講壇:Oracle SQL入門與實戰經典》也詳細地介紹了常用的SQL函數及Oracle 8i和Oracle 9i及以上版本所提供的一些高級功能。
SQL(Structured Query Language)是標準的關系數據庫管理系統(Relational Database Management Systems)操作語言。它是一種非過程化的第4代高級語言,其語法與英語非常相似,因此,也是一種比較容易學習的計算機語言。SQL操作語言對初學者幾乎沒有任何要求,換句話說,初學者可以不具備任何計算機經驗。
Oracle是一個適合于大中型企業的數據庫管理系統,其市場占有率是所有的數據庫管理系統中最高的,主要的用戶為銀行、電信、移動通信、航空、保險、金融、跨國公司和電子商務等。根據WTO的有關協議,我國在以上領域要逐年開放市場,因此,隨著這些領域外資的大量涌入,在不遠的將來對Oracle數據庫管理員和開發人員的需求將急劇增加。
Oracle?SQL是Oracle數據庫管理系統上的SQL語言,無論是Oracle數據庫管理員(DBA)、開發人員(Developer),還是一般用戶,熟練地使用Oracle SQL都是最基本的要求。OCP(Oracle Certified Professional)認證考試也將Oracle SQL作為Oracle數據庫管理員和開發人員的第一門必考課程。
Oracle SQL是美國國家標準化委員會(American National Standards Institute,ANSI)和國際標準化組織(International Standards Organization,ISO)頒布的SQL標準的超集。也就是說,如果讀者學會了Oracle SQL,就能很容易地掌握其他數據庫管理系統上的SQL語言。
目前國內已出版的Oracle教材以翻譯書為主,許多是針對OCP考試的,其內容的編排多以總復習的形式出現。這些教材應付OCP考試有用,但不完全適合作為培訓教材,更不適于自學。Oracle Student Guide (英文版)雖然是一套很好的培訓教材,但這套書只有參加Oracle公司的培訓才能得到,而培訓費之高一般人很難負擔得起。
Oracle Student Guide 的另一問題是:它的練習題對系統資源要求很高。例如,它要求學生創建的表或表空間常常以百兆字節為單位,另外,它的許多練習題必須使用Oracle提供的腳本文件才能運行。也就是說,如果不參加Oracle公司的培訓,學生是很難實現許多練習題的。
本書源于我在新西蘭GZ Comtech(NZ)LTD(現為New Zealand Institute of Science and Technology Ltd——新西蘭科學技術學院)從事Oracle數據庫管理員培訓課程時的講稿和為學生編寫的上機題。當時為了使學生能有足夠的上機練習機會,我幾乎為每一講都設計了大量的上機練習題,為了使學生能在家里練習這些上機題,每一道題都進行了精心的設計,使其對系統的資源消耗都限制在一般PC允許的范圍(當時PC的一般硬件配置為:CPU 300 MHz左右,內存64MB,硬盤8GB左右),而且這些上機題完全是自封閉的,即學生不需要任何CD,不需要運行任何腳本文件,除Oracle系統外也不需要安裝任何其他的軟件。
之后,這些講稿和上機練習題曾在多個培訓機構的多種Oracle培訓課程上使用。其中包括中國計算機軟件與技術服務總公司培訓中心(北京)、昆侖瑞通高級技術培訓中心(北京)、中國UNIX協會和Oracle大學(Etake Technology Inc)等。部分講稿也在新西蘭的Unitec Institute of Technology 即新西蘭奧克蘭技術學院(公立)為大學本科生講授數據庫概論時使用過多次。同時也從學生和同事們那里得到了大量有益的反饋。許多學生本身就是工作在電信、移動通信和航空等領域大型企業的數據庫管理員或數據庫開發人員,他們提出了很多在工作中遇到的實際問題,這些實際問題及其解決方案后來也都加到了講稿或上機題中。一些我做信息系統管理員、分析員和IT顧問時所遇到的實際問題和解決方案也逐步地加到了該講稿或上機題中。
考慮到參加培訓的許多學生正在工作,而且一些學生基本上沒有計算機背景,他們或者是沒時間或者是沒能力來理解難懂而乏味的學術術語,本書使用生動而簡單的生活中的例子來解釋復雜的計算機和數據庫概念,而避免用計算機的例子。所以本書對學生的計算機專業知識幾乎是沒有任何要求。對以前培訓的學生的跟蹤表明這樣的設計是合理的。
書中許多概念和例題都給出了商業應用背景,許多例題是用場景或故事的形式出現的。不少例題和它們的解決方案是企業中的數據庫管理員或數據庫開發人員在實際工作中經常遇到或可能遇到的,因此很多例題可以不加修改或略加修改后應用于實際工作中。
本書的內容和例題設計由淺入深,為了消除初學者對計算機教材常有的畏懼感,本書把那些難懂而且又不常用的內容盡量放在書的后面章節或附錄中,并去掉了個別非常難懂而且一般的Oracle工作人員都很少聽到的內容。根據我多年的IT工作和教學經驗,一個人在某個系統中所使用的功能是很少的,相信還不到一半。因為絕大多數難懂的操作可以通過其他操作的組合來實現,因此,沒有必要為了解釋清楚5%非常難懂的內容而嚇跑了95%的讀者。
本書是一本Oracle SQL的實用教材。雖然它覆蓋了OCP這部分考試的幾乎全部內容,但重點放在實際工作能力的訓練。該書全面而詳細地介紹了關系數據庫的標準操作語言和SQL語言,包括數據查詢語言、DML(數據操作語言)、DDL(數據定義語言)、DCL(數據控制語言)和事務處理。該書也詳細地介紹了常用的SQL函數及Oracle?8i和Oracle?9i及以上版本所提供的一些高級功能。
在剛開始寫這本書時,我曾經想為讀者構造一個小型的訂單系統,并以光盤的形式隨書贈送給讀者。但是經過仔細權衡利弊之后終于打消了這個念頭。因為如果這樣做的話,就要求讀者在開始做練習之前先學會安裝光盤的內容,這樣勢必會增加讀者開始學習的難度。考慮到不少讀者可能是初學者這一事實,最后還是決定在開始時使用Oracle系統自帶的幾個表,隨著學習的深入,再教讀者自己構造一些所需要的表和其他的對象。
學習這門課的許多讀者可能是第一次接觸Oracle,對如何設置Oracle環境一無所知,所以在計算機上配置Oracle的運行環境的操作越簡單越好,這正是本書為什么選用在Windows環境下運行Oracle數據庫管理系統的主要原因。
選用Windows作為學習環境的另一個原因是學習的成本。因為Windows是一個相對便宜的操作系統,而且它很容易得到。絕大多數人對這一操作系統都有所了解,因此在學習Oracle之前不需要再學習操作系統。
Oracle數據庫管理系統是獨立于任何IT平臺的,所以當在一個操作系統上學會了Oracle的SQL語言的使用之后,就可以在任何操作系統上使用它了。也可以把SQL語句或腳本文件幾乎不做任何修改地從一個操作系統移植到另一個操作系統上。另外,盡管許多大型的Oracle數據庫系統的服務器是安裝在UNIX或其他操作系統上,但是用戶的前臺終端還是使用Windows操作系統。
本書的每一章中都配有大量的例題。從我的工作和教學實踐中得來的經驗表明:自己上機做練習是一種很好的學習方法,這樣做往往比只看書效果好。數據庫是一門實踐性很強的課程,只有通過大量的上機操作實踐(練習)才能悟出SQL語言的真諦,水平才能上到一個新的層次。正像毛主席說的“要在游泳中學會游泳”。如果不跳到水中就永遠學不會游泳,如果不坐在計算機前真正地操作Oracle數據庫系統,是很難真的學會使用Oracle數據庫系統的,因此建議讀者如果有條件最好把本書中的例題在自己的計算機上重做一遍或多遍。
本書中幾乎每一道例題都給出了顯示結果,其目的有兩個。第一,當讀者重做例題后,顯示結果可以幫助讀者檢查所做的是否正確;第二,如果讀者沒有一臺計算機做練習,則這些顯示結果可以幫助讀者更好地理解書中的內容。
當閱讀本書時,會發現書中沒有指定的練習題,這是因為每一章有很多例題的緣故。讀者只要把這些例題重做1~2遍也就達到了練習的目的。另外,本書在每章的結尾處并未給出思考題,而使用了“您應該掌握的內容”這樣的方式,之所以沒有使用“思考題”這個詞,是為了避免束縛讀者的想象力。使用“您應該掌握的內容”這樣比較寬松的句子的好處是:當思考所列出的內容時,只要已經理解了它們就可以了,至于如何解釋和回答它們已經變得不重要了。
在我的教學實踐中經常遇到這樣的情況:有的學生看到書中的討論或解釋時就覺得很吃力,有時甚至想睡覺,但是上機做練習時他們馬上就精神起來,而且做得還挺好。如果這種情況您也有的話,請不用擔心,只要能理解書中所介紹的內容就達到了目的,至于是通過上機做練習還是通過閱讀書中的解釋學會的并不重要。還是那句話:“不管白貓黑貓,能抓住老鼠就是好貓”。科學已經證明,文字作為一種交流的工具,它的承載能力要比聲音和圖像小,這可能也是為什么提倡多媒體教學的原因之一。所以當您看書時,有些內容看一遍看不懂是很正常的。
如果真的有一段內容看了幾遍都不能完全理解,也用不著害怕,可以先把這段內容跳過,繼續下面的學習。因為本書的編排不是嚴格的一環扣一環的。等看完了幾章之后,回過頭來再看這段內容可能就比較容易理解了。
書作為一種古老的單向交流工具,它的承載能力是很有限的,因此產生二義性幾乎是不可避免的。為了減少二義性的產生,我曾把本書中許多章的初稿分別發給了多個培訓機構的學生們,并根據他們閱讀后反饋回來的意見對相關的章節做了相應的修改,其中,有些章節幾乎是全部重寫。盡管做了這些努力,但也很難保證該書像武俠小說或愛情小說那樣容易理解,因為它畢竟不是一本消遣的書。
記得我在做碩士論文時,我的導師一再囑咐在論文中要避免使用第一人稱(我)和第二人稱(您),要盡量避免口語化,最好使用被動語態。我在寫論文時確實是那樣做的。不是我喜歡,因為不那樣做可能就畢不了業。但是這本書卻使用了不少口語,因為這本書的讀者不少是初學者而不是專家。使用口語的目的主要是為了降低初學者學習的難度。本書在解釋SQL語句或概念時沒有追求學術上的完美,而只是給出了實用的解釋。在本書中甚至“語法”這個詞都很少用。
在本書中有不少虛構的故事,在這些故事中使用了不少夸張性的語言,其目的只是增加讀者的興趣。因為我深知看有用的書時多數人都很容易產生睡意,使用這些夸張性的語言可能會使讀者在閱讀時不至于睡著。
本書中使用的“您”并不是指讀者。這樣的寫法是想讓讀者在閱讀此書時盡量地投入進去。讀者可以把書中所講的故事看成一出戲,而您正是這出戲中的一個主角。這樣或許對您理解書中所介紹的內容會有所幫助。書中常提到的“您的老板”、“您的經理”和“您的上司”等都不是現實中的人。相信現實中的他們可能都是大好人、大善人、灰衣天使、黑衣天使……
許多人認為學習IT,特別是學習Oracle數據庫管理系統是既枯燥又令人生畏的。一些人下了決心去學Oracle,他們可能用幾個月的時間拼命地學完了Oracle公司所要求的課程并通過了考試,在這一段時間里沒有什么娛樂。等拿到證書后就把所有的書都丟到一邊,痛痛快快地放松一下一直繃緊的神經。
希望這本書的寫法能在枯燥的Oracle學習與娛樂之間達到某種程度的平衡,從而不至于使讀者在整個學習過程中神經一直繃得很緊。
參加應試培訓可能出現的另一個問題是:有些學生拿到了證書之后還不能進行熟練的上機操作。有的培訓中心的課程基本上只進行應試培訓,只教學生如何做考題,這樣學生的動手能力就比較差,在應聘或面對實際工作時就將處在一種不利的境地,因為沒有哪家公司愿意請一個只會說而不會干的人。最后檢驗學生能力的還是市場而不是考場。
這本書對以上的這些人會有很大的幫助,因為這本書的重點放在能力的培養上,即教您怎樣干活。一個既會說又會干的人一定是市場上最需要的人才。
本書既可作為企業或培訓機構的Oracle SQL課程的培訓教材,也可作為自學教材。
編寫這本書的目的有如下3個:
* 把那些沒有計算機或Oracle背景但想加入IT產業的人帶入Oracle這個就業市場中來。
* 為那些有計算機或Oracle經驗但沒受過Oracle正規培訓的人提供一套系統而完整的Oracle培訓教材。
* 為那些非計算機人員,如管理或行政人員,了解和使用Oracle提供一套完整、易學的培訓教材。
本書中的絕大多數例題都分別在Oracle的8.0.4、8.0.5、8.1.5和8.1.7等版本上測試過,所有的例題都在Oracle的9.0.1版本上測試過,所以對您所使用的Oracle版本幾乎沒什么要求。
參與本書編寫的有何明、何茜穎、王瑩、萬妍、王逸舟、牛奎奎、王威、程玉萍、萬群柱、王靜、范萍英、王潔英、劉飛、王超英、萬新秋、王莉、黃力克、萬洪英、萬節柱、萬如更、李菊、萬曉軒、趙菁、張民生、高盼、杜蘅等,在此對他們辛勤和出色的工作表示衷心的感謝。
如果讀者對本書有任何意見或要求,歡迎來信提出。我的電子郵箱為sql_minghe@yahoo. com.cn。最后,預祝讀者的Oracle SQL學習之旅輕松而愉快!
何 明
何茜穎,新西蘭奧克蘭大學一級榮譽研究生(信息系統),奧克蘭大學商業學士(金融、信息系統)。 從2008年開始一直從事一個金融風險管理聯機學習系統(主要開發和部署工具為Oracle Application Express)的設計與開發工作,之前曾是一個維持供應鏈管理信息系統的主要研發人員。2005至2006年在新西蘭最大的建筑公司(Fletcher Building Products Ltd)任職,負責訂單、發票和庫存信息的處理及客戶追蹤等。
何明,Oracle、Linux高級講師,十余年Oracle數據庫、Linux技術服務與培訓經驗,先后為西門子、惠普、中國移動、中國網通、中信銀行、神州數碼、NEC、殼牌(Shell)、中國民航、北電網絡、天津地稅局和財政局、唐山鋼鐵集團、索貝數碼、TOM在線(香港)、北京郵政局等50余家大中型企業做過培訓。 1982年起,在國家地震局研究所從事數據處理工作,在PDP-11、VAX-780等計算機上進行Fortran、Pascal、C語言和匯編的編程工作。1991年開始在國外從事信息系統管理員和分析員的工作。1999年在新西蘭公立理工學院任兼職講師,為大學本科生講授數據庫課程。 20余年程序開發和數據庫系統管理經驗,OCP專業證書(Oracle 8,8i,9i DBA),新西蘭梅西大學商業榮譽碩士,新西蘭奧克蘭大學信息系統研究生,成都理工大學工學學士。
第0章 Oracle的安裝及相關配置
第1章 簡單查詢語句
第2章 限制性查詢和數據的排序
第3章 常用的SQL*Plus命令
第4章 單行函數
第5章 NULL值的處理、邏輯操作和函數嵌套
第6章 綜合數據和分組函數
第7章 多表查詢
第8章 子查詢
第9章 控制SQL*Plus的環境和數據字典簡介
第10章 創建表
第11章 替代變量
第12章 數據的維護
第13章 索引與約束
第14章 視圖
第15章 序列號和同義詞
第16章 用戶管理
第17章 SQL Developer簡介和集合操作
第18章 Express概述和安裝
第19章 Express的用戶界面
第20章 創建和預覽Express網頁
第21章 編輯Express網頁
第22章 在網頁中加入鏈接
第23章 管理數據和部署應用程序
結束語
鳴謝
參考文獻