MySQL 超新手入門(1)從新開始

三國演義

三國演義是一部在華人世界很是普及的歷史小說,是由羅貫中根據元朝的三國志平話改編,他以東漢末年魏、蜀、吳三國鬥爭爲主題,收集歷史資料和說書人的故事,成爲這一部你們都很是熟悉的故事。或許咱們如今以爲這些歷史已經跟咱們沒什麼關係了,不過你們都知道關公過五關斬六將,劉備三顧茅蘆,諸葛孔明的空城記。這些老掉牙的故事,老是不斷的出如今電影、電視劇和各類平臺的遊戲,一代又一代的傳承下去。這應該是由於三國演義的確是一個好故事,不少很精采的好故事,就像美國暢銷做家史帝芬金所說的,一個好故事是不會寂寞的。mysql

三國演義的普及,讓人認爲裏面講的故事其實就是真的歷史,羅貫中在編這本書的時候,大概是爲了讓它能夠比較戲劇化一些,採用了不少當時說書人的內容,這些內容是在民間流傳或由說書人編造的,跟歷史並不同。例如你們熟悉的關公斬華雄,在三國演義中是一段很是的精采故事,做者使用很短的內容讓關雲長的豪勇,簡單、清楚並且很是震憾的呈現給讀者。不過根據史料的考證,其實華雄的頭是被孫堅砍掉的。這也是爲何清朝的時候就有人評論三國演義是「七實三虛,惑亂觀者」。sql

提倡白話文的胡適之,對三國演義的批評更是激烈,他認爲三國演義把諸葛亮的神機妙算寫成一個呼風喚雨的妖道;張飛在歷史上實際上是一個頗有君子風度的武將,但是卻被寫成粗魯的莽夫。雖然有不少精采的故事,但是沒有通過更好的整理,因此三國演義在華人古典文學上的地位,一直不如紅樓夢(注),甚至連水滸傳都比不上。segmentfault

MySQL與SQL

MySQL在資訊應用的角色,好像跟三國演義這本著做有點相似。MySQL是目前最普及的資料庫伺服器,但是你們也最不在乎它,可能由於它是一套免費的軟體,若是不要對它太過份,它會默默的在電腦中爲你服務,在通常狀況下都不太會出問題。MySQL跟其它通常的資料庫同樣,一樣支援ANSI SQL92,也加入少量MySQL本身特別的指令。不管是網頁或應用程式的開發人員,當你第一次接觸資料庫,學習SQL這種古老的指令,應該不會以爲太難。若是你正要進入開發應用程式的領域,在學習的路上,你會分配給SQL的時間應該也不會太多,由於它跟程式語言比較起來是比較單純一些的。oracle

由於MySQL和SQL幾乎是最多見的應用,並且你們也以爲它們是簡單的,固然就不會在它們身上花太多時間。因此慢慢的咱們會發現一些狀況,有一些應用程式發生的問題,實際上是來自MySQL資料庫伺服器和應用程式中的SQL敘述,這些問題相對是比較單純的,只是你們忽略了。框架

例如MySQL提供方便好用的「LIMIT」子句,在應用程式中讓開發人員能夠很容易完成一些特定的功能,例如網頁應用程式中的分頁查詢。不過LIMIT子句是MySQL纔有的,若是應用程式更換資料庫伺服器,例如Oracle,應用程式就會產生一堆錯誤了。還有資料庫的交易(transaction)管理,MySQL預設的MYISAM儲存引擎並無支援交易管理,由於比較簡單一些,因此運做的效率也會比較好;若是應用程式須要執行交易管理,就要在創建資料庫的時候指定儲存引擎爲InnoDB。工具

各類關於MySQL資料庫管理和SQL的問題,開發人員一般在遇到錯誤的時候,纔會開始尋求解決問題的方法。這彷佛也是MySQL的宿命,由於咱們雖然一直在使用它,但是卻不過重視它,也認爲這原本就是合理的,開發人員不該該分配太多時間給它。有一個很明顯的狀況,在逛書局的時候,你應該已經看不到只有討論關於MySQL和SQL的書籍了。學習

OCP MySQL 5 Developer

在咱們臺灣這裏,跟開發人員相關的認證考試,這應該算是最冷門的OCP認證科目之一。這個認證考試的主要內容是MySQL的SQL,經過這個考試的人,表示它具有在應用程式中使用SQL的技能。你應該會覺的這是一個有點詭異的認證考試,它好像沒有存在的必要。對一個有經驗的開發人員來講,使用SQL的技能就像是原本就應該存在的,你甚至已經忘記當初是怎麼學會SQL;對一個新手來講,不會有人建議你去買一本關於SQL的書籍來學習這方面的技能,由於可能也買不到了,不過有各類網站提供SQL的學習,認識一些基礎的敘述後,遇到問題再說吧!網站

SQL在目前的環境下,愈來愈不受到開發人員的關愛,尤爲是如今各類關於資料庫應用的框架,例如Hibernate和MyBatis,它們的任務就是要殺死SQL這隻遠古巨獸,讓開發人員不用受到SQL的煎熬。我也認爲開發應用程式一直是一件很困難的事情,各類愈來愈進步的科技讓生活更方便,但是應用程式開發技術卻愈來愈複雜,開發人員必須具有的技能也更多,若是真的能有一種技術能夠徹底消滅SQL,那絕對是一件很是美好的事情。不過目前的狀況應該仍是有不少困難,就以大約十年前的應用程式來講,SQL仍是一個必要的成員,除非放棄原來已經運做正常的程式,不然你仍是要面對這些冗長的SQL敘述。spa

這就是「MySQL超新手入門」系列文章的目的,內容的範圍涵蓋OCP MySQL 5 Developer認證考試,由於它的範圍也是一個開發人員必須具有的SQL技能。從安裝MySQL資料庫與相關的工具程式開始,到學習全部MySQL提供的SQL,雖然是針對MySQL資料庫撰寫的,不過絕大部份都符合ANSI SQL92的標準,也就是在其它資料庫產品也能夠正確的運做。code

內容規劃爲19章:

  1. 資料庫概論與 MySQL 安裝
  2. SELECT 基礎查詢
  3. 運算式與函式
  4. JOIN 與 UNION 查詢
  5. CRUD 與資料維護
  6. 字元集與資料庫
  7. 儲存引擎與資料型態
  8. 表格與索引
  9. 子查詢
  10. Views
  11. Prepared Statements
  12. Stored Routines入門
  13. Sotred Routines的變數與流程
  14. Stored Routines進階
  15. Triggers
  16. 資料庫資訊
  17. 錯誤處理與查詢
  18. 匯入與匯出資料
  19. 效率

在第一章介紹基本的資料庫概念與安裝須要的軟體後,第二章到第五章討論基本的新增、修改、刪除和查詢;第六章到第八章討論資料庫、表格和索引的創建與管理,這個部份的內容會有比較多MySQL獨有的特點;第九章是子查詢;第十章到第十五章討論資料庫進階的應用,這些在其它資料庫產品都會提供相似的技術,例如Oracle的PL/SQL;第十六章到第十九章討論的內容比較偏向於資料庫管理和效率的進階應用,這些也是一個開發人員須要瞭解的。

注: 紅樓夢在文學上的重視讓它演變成一門「紅學」,但是紅樓夢的故事與人物對通常人來講,卻不如三國演義來得熟悉

參考資料:

  • 三國演義校注,羅貫中原著,吳小林校注,里仁書局
  • 三國演義的文學特質及其悲劇藝術,羅龍治
  • http://www.oracle.com

via codedata

相關文章
相關標籤/搜索