《MySQL5 數據庫應用入門與提高(附光盤)》從初學者的角度出發,由淺入深,循序漸進地介紹了MySQL數據庫應用與開發的相關知識,書中不但提供了大量操作MySQL數據庫的示例,還提供了大量實戰和上機練習供讀取演練。
《MySQL5 數據庫應用入門與提高(附光盤)》共分為15章,主要內容包括MySQL數據庫的開發背景、使用優勢、發行版本、MySQL數據庫的安裝和常用的圖形操作界面,數據庫的操作、數據庫表的操作、數據庫表中的字段操作、字段約束,表中數據記錄的添加、刪除、更新和查詢操作,常量、系統變量、用戶變量、運算符、內部函數、自定義函數、存儲過程、觸發器、視圖和索引,數據備份和還原,以及用戶權限的管理、MySQL數據庫的性能優化和日志文件管理等,最后還提供了一個項目實戰案例。
MySQL數據庫是由瑞士的MySQLAB公司開發的一款非常優秀的自由軟件,是一個非常成熟的產品,由于體積小、速度快和總體擁有成本低等特點被廣泛地應用在中小型網站上。它曾經是作為初級用戶上網的玩具發布的,但是現在它已經成為世界上最流行的數據庫之一。
2008年,Sun公司以10億美金收購了MySQL數據庫。2010年4月20日,Oracle公司收購了Sun公司,MySQL數據庫又成了Oracle公司的數據庫產品,這給MySQL數據庫帶來了前所未有的機遇和挑戰。目前,全球最大的網絡搜索引擎公司Google使用的就是MySQL數據庫。同時,國內很多大型的網絡公司也選擇使用MySQL數據庫,例如網易和新浪。目前,MySQL的最新版本5.6.13已經正式發布,并被廣大用戶所使用。
本書內容
本書以目前主流的MySQL5.6.13版本為例進行介紹。全書共分15章,主要內容如下。
第1章MySQL數據庫概述。本章著重介紹MySQL數據庫的基本知識,包括發展背景、使用優勢、系統特性、發行版本,以及安裝步驟等內容。
第2章MySQL管理工具。本章首先介紹MySQL數據庫中常見的自帶的一些命令工具,然后介紹常用的mysql命令,最后介紹常用的圖形界面管理工具。
第3章數據庫基本操作。本章重點介紹MySQL數據庫的基本操作,包括數據庫的創建、修改、刪除和查看等。但是在介紹數據庫的操作之前,會介紹MySQL數據庫中的存儲引擎。
第4章數據表的操作。本章主要介紹MySQL數據庫中表的管理,包括表的作用、MySQL數據表類型、字段數據類型以及表和字段的操作等。
第5章字段約束。本章主要介紹約束的作用以及如何為MySQL數據庫中的字段添加約束,這些約束包括主鍵約束、外鍵約束、非空約束、唯一性約束以及自增約束等。
第6章數據記錄基本操作。數據記錄的操作包括查詢、添加、更新和刪除。本章首先從查詢操作開始介紹,包括常用的單表查詢、多表查詢、子查詢和正則表達式查詢,然后再依次介紹對數據的添加、更新和刪除操作。
第7章MySQL語言編程。本章介紹MySQL語言編程的相關語法和應用。首先從常量開始介紹,接著介紹變量的知識,如用戶變量、系統變量以及如何使用,然后再介紹MySQL中的運算符,如算術運算符、比較運算符和邏輯運算符等,最后介紹MySQL中的流程控制語句,如條件語句和循環語句。
第8章MySQL中的內部函數。本章著重介紹MySQL數據庫中提供的常見的內部函數,包括字符串函數、數學函數、日期和時間函數、信息函數以及加密函數等多種不同類型的函數。
第9章存儲過程、函數與觸發器。本章重點介紹存儲過程、自定義函數和觸發器3個知識點,包括它們的創建語法,如何創建、修改、刪除以及查看等內容。
第10章視圖與索引。視圖是一種特殊的表,它使用SQL語句將對表數據的查詢結果定義為新的表放在視圖中。索引是一種特殊的數據庫結構,可以用來快速查詢數據庫表中的特定記錄。本章將詳細介紹與視圖和索引有關的知識,例如創建、修改和刪除等。
第11章數據備份與還原。數據的備份和還原操作能夠解決數據庫崩潰時的數據恢復,能夠根據需求而備份和還原指定的數據。本章詳細介紹MySQL數據庫中數據的備份和還原。
第12章MySQL用戶權限的管理。本章主要介紹MySQL數據庫中的用戶權限管理,主要包括授權管理表、用戶管理和權限管理三部分內容。
第13章MySQL的性能優化。優化MySQL數據庫是數據庫管理員的必備技能,本章詳細介紹MySQL數據庫中常見的一些優化。例如,優化索引、優化ORDERBY、優化GROUPBY、優化子查詢、優化查詢時的基本原則以及優化數據庫結構等內容。
第14章MySQL日志文件管理。本章著重介紹MySQL數據庫中常見的4種日志文件:錯誤日志文件、通用查詢日志文件、慢查詢日志文件和二進制日志文件。
第15章博客文章管理系統。本章使用C#語言、MySQL數據庫和VisualStudio2010開發工具完成一個小型的博客文章管理系統。該系統實現登錄、注冊、發表文章、瀏覽文章、刪除文章、查看文章以及對文章發表評論等功能。
本書特色
本書內容詳細、實例豐富,知識面廣,全面講解了MySQL數據庫技術。與已經出版的圖書相比,這本圖書的最大特點體現在如下幾個方面。
知識全面,內容豐富
本書緊緊圍繞MySQL數據庫的相關知識展開詳細講解,涵蓋了實際開發應用中的具體應用代碼。
理論和示例結合
本書中幾乎每一個知識點都有豐富而典型的示例,而且每一章最后都會通過一個綜合的實戰介紹本章的知識。作為一本MySQL數據庫入門類型的書,將理論和示例很好地結合起來進行講解最容易讓讀者快速掌握。
應用廣泛,提供文檔
對于大多數的精選實戰案例,都向讀者提供了詳細的實現步驟,結構清晰簡明,分析深入淺出,而且有些實戰貼近實際。
隨書光盤
本書配備了視頻教學文件,包括每個章節所涉及的源代碼、開發環境的安裝演示等。讀者可以通過視頻文件更加直觀地學習MySQL數據庫的使用知識。
網站技術支持
讀者在學習或者工作的過程中,如果遇到實際問題,作者會在第一時間內給予幫助。
貼心的提示
為了便于讀者閱讀,全書還穿插著一些技巧、提示等小貼士,體例約定如下。
提示:通常是一些貼心的提醒,讓讀者加深印象或提供建議,或者是解決問題的方法。
注意:提出學習過程中需要特別注意的一些知識點和內容,或者相關信息。
技巧:通過簡短的文字,指出知識點在應用時的一些小竅門。
讀者對象
本書既適合作為軟件開發入門者的自學用書,也適合作為高等院校相關專業的教學參考書,并可供開發人員查閱、參考。
MySQL數據庫開發入門者。
MySQL數據庫初學者以及在校學生。
各大中專院校的在校學生和相關授課老師。
準備從事與MySQL數據庫相關的工作人員。
本書由侯振云和肖進共同編著,其他參與編寫、資料整理、案例開發的人員還有程朝斌、王詠梅、郝軍啟、王慧、鄭小營、張浩華、王超英、張凡、趙振方、張艷梅等,在此一并表示感謝。在本書的編寫過程中,我們力求精益求精,但其中難免存在一些疏漏與不足之處,敬請廣大讀者給予批評指正。
編者
第1章
MySQL數據庫概述
數據庫是指以一定的方式存儲在一起、能為多個用戶共享、具有盡可能小的冗余度,并且與應用程序彼此獨立的數據集合。目前使用最為廣泛的是關系型數據庫,它是建立在關系模型基礎上的數據庫,借助于集合代數等數學概念和方式來處理數據庫中的數據。現在的數據庫大多數都是關系型數據庫,例如Oracle、MicrosoftSQLServer、Access和MySQL等。
MySQL數據庫是由瑞典MySQLAB公司開發的一個開放源碼的小型關聯式數據庫管理系統,被廣泛地應用在Internet上的中小型網站中。由于體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫。本章將簡單介紹MySQL數據庫的基礎知識,包括發展歷史、發行版本、系統特性以及如何安裝等內容。
本章重點:
了解數據管理技術的3個發展階段
熟悉數據庫系統的組成和數據模型
熟悉常見的一些數據庫管理系統
了解MySQL數據庫的發展背景
掌握MySQL數據庫的使用優勢
熟悉MySQL的系統特性和發行版本
熟悉MySQL5.6的新增亮點
掌握如何安裝MySQL5.6數據庫
掌握如何啟動MySQL服務
了解my.ini文件的基本配置
熟悉常用的一些錯誤代碼
1.1數據管理和數據庫系統
數據是指描述事物的符號記錄,人們通過數據來認識世界、交流信息。數據庫是存儲在一起的相關數據的集合。最初的數據存儲并不是使用數據庫的,數據庫是發展到一定階段時出現的產物。本節簡單介紹數據管理系統、數據庫系統和關系型數據庫。
1.1.1數據管理技術
具體來說,數據管理技術是人們對數據進行收集、組織、存儲、加工、傳播和利用的一系列活動的總和,該技術的發展經歷了人工管理、文件管理和數據庫管理3個階段。每個階段的發展都以數據存儲冗余不斷減小、數據獨立性不斷增強、數據操作更加方便和簡單為標志,并各有各的特點。
1.人工管理階段
在計算機出現之前,人們運用常規的手段從事記錄、存儲和加工數據。簡單來講,就是利用紙張來記錄,利用計算工具(例如算盤和計算尺)進行計算,并且主要通過人的大腦來管理和利用這些數據。
到了20世紀50年代中期,計算機主要用于科學計算。當時沒有磁盤等直接存取設備,也沒有操作和管理數據的專門軟件,只有紙帶、卡片和磁帶等介質。數據處理的方式是批處理,該階段管理數據的特點如下。
由于當時的計算機只用于科學計算,對于數據保存的需求尚不迫切,因此數據并不進行保存。
系統沒有專用的軟件對數據進行管理,每個應用程序都要包括數據的存儲結構、存取方法和輸入方法等。
數據不共享。數據是面向程序的,一組數據只能對應一個程序。
數據不具有獨立性。程序依賴于數據,如果數據的類型、格式或輸入/輸出方式等邏輯結構或物理結構發生了變化,那么必須對應用程序做出相應的修改。
2.文件系統階段
20世紀50年代后期到60年代中期,隨著計算機硬件和軟件的發展,磁盤和磁鼓等直接存取設備開始普及,這一時期的數據處理系統是把計算機中的數據組織成相互獨立的被命名的數據文件,并且可以按照文件的名字進行訪問,對文件中的記錄進行存取的數據管理技術。數據可以長期保存在計算機的外存上,可以對數據進行反復處理,并支持文件的查詢、修改、插入和刪除等操作,這就是文件系統。
文件系統實現了記錄內容的結構化,但是從文件的整體來看卻是沒有結構的。其數據面向特定的應用程序,因此,數據共享性、獨立性差,并且冗余度大,管理和維護的代價也相當大。
3.數據庫系統階段
20世紀60年代后期以來,計算機的性能得到進一步提升,更重要的是出現了大容量的磁盤,存儲容量大大增加且價格下降。在這個基礎上,才有可能克服文件系統管理數據時的不足,并且滿足和解決實際應用中多個用戶、多個應用程序共享數據的要求,從而使數據能為盡可能多的應用程序服務,這就出現了數據庫這樣的數據管理技術。
數據庫系統階段的特點如下。
(1)數據結構化。在描述數據時不僅要描述數據本身,還要描述數據之間的聯系。數據結構化是數據庫的主要特征之一,也是數據庫系統與文件系統的本質區別。
(2)數據共享性高、冗余少,并且容易擴充。數據不再針對某一個應用程序,而是面向整個系統,數據可被多個用戶和多個應用程序共享,而且容易增加新的應用程序。數據共享大大減少數據冗余。
(3)數據獨立性高。
(4)數據由數據庫管理系統(DataBaseManagementSystem,DBMS)統一進行管理和控制。數據庫為多個用戶和應用程序所共享,對數據的存取往往是并發的,即多個用戶可以同時存取數據庫中的數據,甚至可以同時存取數據庫中的同一個數據,為確保數據庫數據的正確有效和數據庫系統的有效運行,數據庫管理系統提供以下4方面的數據控制功能。
數據安全性控制。防止因不合法使用數據而造成數據的泄露和破壞,保證數據的安全和機密。
數據的完整性控制。系統通過設置一些完整性規則,以確保數據的正確性、有效性和相容性。
并發控制。多用戶同時存取或修改數據庫時,防止相互干擾而給用戶提供不正確的數據,并使數據庫受到破壞。
數據恢復。當數據庫被破壞或數據不可靠時,系統有能力將數據庫從錯誤狀態恢復到最近某一時刻的正確狀態。
1.1.2數據庫系統
數據庫系統(DataBaseSystem,DBS)是由數據庫及其管理軟件組成的系統,這是為適應數據處理的需要而發展起來的一種較為理想的數據處理的核心機構。數據庫系統有大小之分,大型數據庫系統有MicrosoftSQLServer、Oracle和DB2等,中小型數據庫系統有FoxPro和Access等。
1.數據庫系統的組成
一般情況下,數據庫系統由4部分組成,即數據庫、硬件、軟件和使用人員。
數據庫(DataBase,DB)。數據庫是指長期存儲在計算機內的、有組織、可共享的數據的集合。數據庫中的數據按一定的數學模型組織、描述和存儲,具有較小的冗余,較高的數據獨立性和易擴展性,并且可為各種用戶共享。
硬件。硬件是構成計算機系統的各種物理設備,包括存儲所需的外部設備,硬件的配置應滿足整個數據庫系統的需要。
軟件。軟件包括操作系統、數據庫管理系統和應用程序。數據庫管理系統是數據庫系統的核心軟件,它在操作系統的支持下工作,解決如何科學地組織和存儲數據,如何高效獲取和維護數據的系統軟件。其主要功能包括數據定義功能、數據操縱功能、數據庫的運行管理和數據庫的建立與維護。
使用人員。具體劃分時可以將使用人員分為4類,具體說明如下。
系統分析員和數據庫設計人員。前者負責應用系統的需要分析和規范說明,他們和用戶、數據庫管理員一起確定系統的硬件配置,并參與數據庫系統的概要設計。后者負責數據庫中數據的確定、數據庫各級模式的設計。
應用程序員。也稱開發人員或者編程人員,他們負責編寫使用數據庫的應用程序,這些應用程序可以對數據進行查看、添加、刪除或修改。
最終用戶。他們利用系統的接口或者查詢語言訪問數據庫。
數據庫管理員(DataBaseAdministrator,DBA)。他們負責數據庫的總體信息控制。其職責包括具體數據庫中的信息內容和結構,決定數據庫的存儲結構和存取策略,定義數據庫的安全性要求和完整性約束條件,兼容數據庫的使用和運行,負責數據庫的性能改進、數據庫的重組和重構,以提高系統的性能。
2.數據庫系統的數據模型
數據模型是信息模型在數據世界中的表示形式,根據具體數據存儲需要的不同,可以將數據模型分為3類:層次模型、網狀(網格)模型和關系模型。使用對應模型的數據庫分別稱為層次型數據庫、網狀(網格)型數據庫和關系型數據庫。
(1)層次模型
用層次(樹型)結構表示實體類型及實體間聯系的數據模型稱為層次模型(HierarchicalModel)。使用層次模型可以使層次分明、結構清晰,不同層次間的數據關聯直接簡單,且提供了良好的完整性支持。這種模型需要滿足兩個條件:有且只有一個根節點和根節點以外的其他節點有且只有一個父節點。使用這種模型時存在著如下一些缺點。
對插入和刪除操作的限制比較多。
查詢子女節點必須通過父節點,任何一個節點只有按其路徑查看時,才能顯示它的全部內容。
節點之間很難建立橫向關聯。
(2)網狀模型
用有向圖結構表示實體類型及實體間聯系的數據結構模型稱為網狀模型(NetworkModel)。網狀模型能夠更加直接地描述現實世界,而且存取效率比較高。但是這種模型的結構關系錯綜復雜,難以維護。網狀模型需要滿足兩個條件:允許一個以上的節點沒有父節點和一個節點可以有多個父節點。
(3)關系模型
關系模型是用二維表的形式表示實體和實體間聯系的數據模型,是由埃德加科德于1970年首先提出的。關系模型由關系數據結構、關系操作集合和關系完整性約束3個部分組成。與層次和網狀模型相比,關系模型具有概念單一、規范化、以二維表格表示等特點,具體如下。
數據結構單一。關系模型中,不管是實體還是實體之間的聯系都用關系來表示,而關系都對應一張二維數據表,數據結構簡單、清晰。
關系規范化,并建立在嚴格的理論基礎上。構成關系的基本規范要求關系中的每個屬性不可再分割,同時關系建立在具有堅實的理論基礎的嚴格數學概念的基礎上。
概念簡單,操作方便。關系模型最大的優點就是簡單,用戶容易理解和掌握,一個關系就是一張二維表格,用戶只需用簡單的查詢語言就能對數據庫進行操作。
1.1.3常見的數據庫
關系數據庫是建立在關系模型基礎上的數據庫,借助于集合代數等數學概念和方法來處理數據庫中的數據。現實世界中的各種實體和實體之間的各種聯系都用關系模型來表示。雖然對此模型存在著一些批評意見,但它還是數據存儲的傳統標準。標準數據查詢語言SQL就是一種基于關系數據庫的語言,這種語言執行對關系數據庫中數據的檢索和操作。
現在關系型數據庫已經成為發展的主流,許多優秀的商業數據庫大多都是關系型的。下面介紹一些常見的數據庫。
1.Oracle數據庫
OracleDataBase又稱OracleRDBMS,或者簡稱Oracle,是甲骨文公司的一款關系型數據庫管理系統,也是目前最流行的C/S或B/S體系結構的數據庫之一。Oracle數據庫是目前世界上使用最為廣泛的數據庫管理系統,也是世界上第一個支持SQL語言的數據庫。
作為一個通用的數據庫系統,Oracle具有完整的數據管理功能;作為一個關系數據庫,它是一個完備關系的產品;作為分布式數據庫,它實現了分布式處理功能。Oracle主要應用于大型系統,但是該數據庫十分復雜,管理起來非常不方便。在2009年甲骨文全球大會上,甲骨文公司宣布最新版Oracle服務器虛擬化軟件OracleVM2.2正式上市。
2.DB2數據庫
DB2是IBM公司研制出的一種關系型數據庫管理系統,分別在不同的操作系統平臺上服務。雖然DB2產品是基于UNIX的系統和個人計算機操作系統的,但是,在基于UNIX系統和Microsoft公司在Windows系統下的Access方面,DB2追尋了Oracle的數據庫產品。
DB2主要應用于大型應用系統,具有較好的可伸縮性,可以支持從大型機到單用戶環境,應用于OS/2、Windows等平臺下。DB2提供了高層次的數據利用性、完整性、安全性和可恢復性,以及小規模到大規模應用程序的執行能力,具有與平臺無關的基本功能和SQL命令。DB2還采用了數據分級技術,能夠使大型數據很方便地下載到LAN數據庫服務器,使C/S用戶和基于LAN的應用程序可以訪問大型數據,并且使數據庫本地化及遠程連接透明化。
3.PostgreSQL數據庫
PostgreSQL是一個開放源代碼的關系型數據庫管理系統,它是在加州大學伯克利分校計算機系開發的POSTGRES基礎上發展起來的。目前,PostgreSQL數據庫已經是個非常優秀的開源項目,很多大型網站都使用PostgreSQL數據庫來存儲數據。
PostgreSQL支持大部分SQL標準,并且提供了許多其他特性,如復雜查詢、外鍵、觸發器、視圖、事務完整性和MVCC。同樣,PostgreSQL可以用許多方法擴展,例如,通過增加新的數據類型、函數、操作符、聚集函數和索引方法等。
4.MicrosoftOfficeAccess數據庫
MicrosoftOfficeAccess是由Microsoft公司發布的關聯式數據庫管理系統,它結合了MicrosoftJetDatabaseEngine和圖形用戶界面兩項特點,是MicrosoftOffice的系統程式之一。一般情況下,直接將MicrosoftOfficeAccess數據庫簡稱為Access數據庫,它主要應用于一些小型系統中。
5.MicrosoftSQLServer數據庫
MicrosoftSQLServer數據庫可以簡稱為SQLServer數據庫,它也是由Microsoft公司開發和推廣的關系型數據庫管理系統。SQLServer用于大型的管理系統中,最初由Microsoft、Sybase和Ashton-Tate三家公司共同開發,并于1988年推出了第一個OS/2版本。近些年來,SQLServer的版本在不斷更新,目前最新版本是2012年3月份推出的SQLServer2012。
6.MySQL數據庫
MySQL數據庫是一個開放源碼的小型關聯式數據庫管理系統,其開發者是瑞典的MySQLAB公司,被廣泛地應用在Internet上的中小型網站中。MySQL數據庫的發展速度非常快,而且由于體積小、速度快、總體擁有成本低,尤其是開放源碼這一特性,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL數據庫作為網站數據庫。
注意:Access數據庫和SQLServer數據庫都是Microsoft公司的產品,只能在Microsoft公司Windows系列的操作系統上運行。而Oracle、DB2、MySQL和PostgreSQL等數據庫是可以跨平臺的,它們不僅可以在Windows系列的操作系統上運行,還可以在其他操作系統(例如UNIX、Linux和MaxOS)上運行。
1.2MySQL數據庫概述
MySQL數據庫是一個關系型數據庫管理系統,由瑞典的MySQLAB公司開發,目前和Oracle數據庫一樣,都屬于甲骨文公司。MySQL的標志是一只名叫Sakila的海豚,它代表速度、力量和精確。本節將介紹與MySQL數據庫相關的基本知識,包括它的背景、使用優勢以及系統特性等內容。
1.2.1MySQL數據庫的發展背景
MySQL數據庫的歷史最早可以追溯到1979年,當時有一個名叫MontyWidenius的程序員在名為TcX的小公司里打工,并且使用BASIC設計了一個報表工具,使其可以在4MB主頻和16KB內存的計算機上運行。沒過多久,Monty又將此工具用C語言進行了重寫并移植到UNIX平臺。當時,這只是一個很底層的且僅面向報表的存儲引擎,名叫Unireg。
雖然TcX這個小公司的資源有限,但Monty的天賦極高,面對資源有限的不利條件,反而更能發揮他的潛能。Monty總是力圖寫出最高效的代碼,并因此養成了習慣。與Monty在一起的其他同事,很少有人能堅持把那些代碼持續寫到20年后,但他做到了。
1990年,TcX公司的客戶中開始有人要求為他的API提供SQL支持。當時有人提議直接使用商用數據庫,但是Monty覺得商用數據庫的速度難以令人滿意。于是,他直接借助mSQL的代碼,將它集成到自己的存儲引擎中。令人失望的是,效果并不令人滿意,于是,Monty雄心大起,決心自己重寫一個SQL支持。
1996年,MySQL1.0版本發布,它可以在小范圍內使用。到了1996年10月,MySQL3.11.1版本發布,沒有2.x版本,最開始只提供了Solaris下的二進制版本。一個月后,Linux版本出現了。這時的MySQL還非常簡陋,除了在一個表上做一些INSERT、UPDATE、DELETE和SELECT操作外,沒有其他更多的功能。
緊接下來的兩年里,MySQL被依次移植到各個平臺。它在發布時采用的許可策略有些與眾不同:允許免費使用,但是不能將MySQL與自己的產品綁定在一起發布。如果想一起發布,就必須使用特殊許可,這就意味著用戶要花“銀子”。當然,商業支持也是需要花“銀子”的。其他方面用戶怎么用都可以,這種特殊許可為MySQL帶來了一些收入,從而為它的持續發展打下了良好的基礎。
MySQL關系型數據庫于1998年1月發行第一個版本。它使用系統核心的多線程機制提供完全的多線程運行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等編程語言的編程接口(API)。支持多種字段類型,并提供了完整的操作符支持。
1999年至2000年,MySQLAB公司在瑞典成立。Monty雇了幾個人與Sleepycat公司合作開發出了BerkeleyDB(簡稱為DBD)引擎,由于BDB支持事務處理,所以MySQL數據庫從此開始支持事務處理了。
2000年4月,MySQL數據庫對舊的存儲引擎ISAM進行了整理,將其命名為MyISAM。2001年,HeikkiTuuri向MySQL數據庫提出建議,希望能集成他的存儲引擎InnoDB,這個引擎同樣支持事務處理,還支持行級鎖。該引擎之后被證明是最為成功的MySQL事務存儲引擎。
2003年12月,MySQL5.0版本發布,提供了視圖和存儲過程等功能。
2008年1月,MySQLAB公司被Sun公司以10億美金收購,MySQL數據庫進入Sun時代。在Sun時代,Sun公司對其進行了大量的推廣、優化和Bug修復等工作。
2008年11月,MySQL5.1發布,它提供了分區、事件管理,以及基于行的復制和基于磁盤的NDB集群系統,同時修復了大量的Bug。
2009年4月,甲骨文公司以74億美元收購Sun公司,自此MySQL數據庫進入Oracle時代,而其第三方的存儲引擎InnoDB早在2005年就被甲骨文公司收購。
2010年12月,MySQL5.5發布,其主要新特性包括半同步的復制及對SIGNAL/RESIGNAL的異常處理功能的支持,最重要的是InnoDB存儲引擎終于變為當前MySQL數據庫的默認存儲引擎。MySQL5.5不是時隔兩年后的一次簡單的版本更新,而是加強了MySQL數據庫各個方面在企業級的特性。甲骨文公司同時也承諾MySQL5.5和未來版本仍是采用GPL授權的開源產品。
2013年2月,甲骨文公司宣布MySQL5.6正式版發布,首個正式版本號為5.6.10。同年7月13日,發布了MySQL5.6.13版本,這是目前最新的版本,本書介紹的MySQL數據庫就是使用5.6.13版本。
1.2.2MySQL使用優勢
如今MySQL數據庫的發展勢頭迅速,許多大型網站也已經使用MySQL數據庫來存儲數據,例如新浪和網易。那么,MySQL數據庫為什么成為他們的選擇,它到底有哪些優勢呢?下面從4個方面進行了分析。
1.MySQL數據庫是開放源代碼的數據庫
MySQL數據庫是開放源代碼的數據庫,任何人都可以獲取該數據庫的源代碼,這就使得任何人都可以修改MySQL數據庫的缺陷,并且任何人都能夠以任何目的來使用該數據庫。MySQL數據庫作為一款自由的軟件,它完全繼承了GNU的思想,這保證了MySQL數據庫是一款可以自由使用的數據庫。
2.MySQL數據庫的跨平臺性
MySQL數據庫不僅可以在Windows系列的操作系統上運行,還可以在UNIX、Linux和MacOS等操作系統上運行。許多網站都選擇UNIX和Linux作為網站的服務器,因此MySQL數據庫的跨平臺性保證其在Web應用方面的優勢。雖然,Microsoft公司的SQLServer數據庫是一款非常優秀的商業數據庫,但是它只能用在Windows操作系統上。因此,MySQL數據庫的跨平臺性是一個相當大的優勢。
3.MySQL的價格優勢
MySQL數據庫是一款自由軟件,任何人都可以從MySQL數據庫的官方網站下載該軟件。這些社區版本的MySQL數據庫軟件都是免費使用的,即使是需要付費的附加功能,其價格也是很便宜的。相對于Oracle、SQLServer和DB2這些價格昂貴的商業軟件,MySQL數據庫具有絕對的價格優勢。
4.功能強大使用方便
MySQL數據庫是一個真正的多用戶、多線程SQL數據庫服務器,它是C/S結構的實現,由一個服務器守護程序mysqlId和很多不同的客戶程序和庫組成。MySQL數據庫能夠快速、有效和安全地處理
......