MySQL是世界上受歡迎的數(shù)據(jù)庫管理系統(tǒng)之一。書中從介紹簡單的數(shù)據(jù)檢索開始,逐步深入一些復(fù)雜的內(nèi)容,包括聯(lián)結(jié)的使用、子查詢、正則表達(dá)式和基于全文本的搜索、存儲過程、游標(biāo)、觸發(fā)器、表約束,等等。通過重點(diǎn)突出的章節(jié),條理清晰、系統(tǒng)而扼要地講述了讀者應(yīng)該掌握的知識,使他們不經(jīng)意間立刻功力大增。
《MySQL必知必會》注重實(shí)用性,操作性很強(qiáng),適用于廣大軟件開發(fā)和數(shù)據(jù)庫管理人員學(xué)習(xí)參考。
《MySQL必知必會》是經(jīng)典暢銷書《SQL必知必會》之后,作者應(yīng)眾多讀者的請求編寫的,專門針對MySQL用戶。書中繼承了《MySQL必知必會》的優(yōu)點(diǎn),沒有過多闡述數(shù)據(jù)庫基礎(chǔ)理論,而是緊貼實(shí)戰(zhàn)需要,直接從數(shù)據(jù)檢索開始,逐步深入各種復(fù)雜的內(nèi)容,包括聯(lián)結(jié)的使用、子查詢、正則表達(dá)式和基于全文本的搜索、存儲過程、游標(biāo)、觸發(fā)器、表約束,等等。通過本書,讀者能夠掌握扎實(shí)的基本功,迅速成為MySQL高手。
MySQL已經(jīng)成為世界上最受歡迎的數(shù)據(jù)庫管理系統(tǒng)之一。無論是用在小型開發(fā)項(xiàng)目上,還是用來構(gòu)建那些聲名顯赫的網(wǎng)站,MySQL都證明了自己是個穩(wěn)定、可靠、快速、可信的系統(tǒng),足以勝任任何數(shù)據(jù)存儲業(yè)務(wù)的需要。本書基于我的一本暢銷書Sams Teach Yourself SQL in 10 Minutes(中文版《SQL必知必會》,人民郵電出版社出版),那本書堪稱全世界用得最多的一本SQL教程,重點(diǎn)講解讀者必須知道的東西,條理清晰,系統(tǒng)而扼要。但是,即使是那樣一本廣為使用的成功的書,也還存在著以下這些局限性。由于要面向所有主要的數(shù)據(jù)庫管理系統(tǒng)(DBMS),我不得不把針對具體DBMS的內(nèi)容一再壓縮。為了簡化SQL的講解,我必須(盡可能)只寫各種主要的DBMS通用的SQL語句。這要求我不得不舍棄一些更好的、針對具體DBMS的解決方案。雖然基本的SQL在不同的DBMS間具有較好的可移植性,但是高級的SQL顯然不是這樣的。因此,那本書里無法詳細(xì)講解比較高級的內(nèi)容,如觸發(fā)器、游標(biāo)、存儲過程、訪問控制、事務(wù)等。于是就有了這本書。本書沿用了前一本書業(yè)已成功的教程模式和組織結(jié)構(gòu),除了:MySQL以外,不在其他內(nèi)容上過多糾纏。
Ben Forta,世界知名的技術(shù)作家,也是Adobe技術(shù)界知名的專家之一,目前擔(dān)任Adobe公司的高級技術(shù)推廣專家。他具有計算機(jī)行業(yè)20多年工作經(jīng)驗(yàn),多年來撰寫了十幾本技術(shù)圖書,包括《正則表達(dá)式必知必會》、《SQL必知必會》(人民郵電出版社出版)等世界性的暢銷書,已被翻譯為十幾種文字。
第1章 了解SQL
1.1 數(shù)據(jù)庫基礎(chǔ)
1.1.1 什么是數(shù)據(jù)庫
1.1.2 表
1.1.3 列和數(shù)據(jù)類型
1.1.4 行
1.1.5 主鍵
1.2 什么是SQL
1.3 動手實(shí)踐
1.4 小結(jié)
第2章 MySQL簡介
2.1 什么是MySQL
2.1.1 客戶機(jī)-服務(wù)器軟件
2.1.2 MySQL版本
2.2 MySQL工具
2.2.1 mysql命令行實(shí)用程序
2.2.2 MySQL Adminis-trator
2.2.3 MySQL Query Browser
2.3 小結(jié)
第3章 使用MySQL
3.1 連接
3.2 選擇數(shù)據(jù)庫
3.3 了解數(shù)據(jù)庫和表
3.4 小結(jié)
第4章 檢索數(shù)據(jù)
4.1 SELECT語句
4.2 檢索單個列
4.3 檢索多個列
4.4 檢索所有列
4.5 檢索不同的行
4.6 限制結(jié)果
4.7 使用完全限定的表名
4.8 小結(jié)
第5章 排序檢索數(shù)據(jù)
5.1 排序數(shù)據(jù)
5.2 按多個列排序
5.3 指定排序方向
5.4 小結(jié)
第6章 過濾數(shù)據(jù)
6.1 使用WHERE子句
6.2 WHERE子句操作符
6.2.1 檢查單個值
6.2.2 不匹配檢查
6.2.3 范圍值檢查
6.2.4 空值檢查
6.3 小結(jié)
第7章 數(shù)據(jù)過濾
7.1 組合WHERE子句
7.1.1 AND操作符
7.1.2 OR操作符
7.1.3 計算次序
7.2 IN操作符
7.3 NOT操作符
7.4 小結(jié)
第8章 用通配符進(jìn)行過濾
8.1 LIKE操作符
8.1.1 百分號(%)通配符
8.1.2 下劃線(_)通配符
8.2 使用通配符的技巧
8.3 小結(jié)
第9章 用正則表達(dá)式進(jìn)行搜索
9.1 正則表達(dá)式介紹
9.2 使用MySQL正則表達(dá)式
9.2.1 基本字符匹配
9.2.2 進(jìn)行OR匹配
9.2.3 匹配幾個字符之一
9.2.4 匹配范圍
9.2.5 匹配特殊字符
9.2.6 匹配字符類
9.2.7 匹配多個實(shí)例
9.2.8 定位符
9.3 小結(jié)
第10章 創(chuàng)建計算字段
10.1 計算字段
10.2 拼接字段
10.3 執(zhí)行算術(shù)計算
10.4 小結(jié)
第11章 使用數(shù)據(jù)處理函數(shù)
11.1 函數(shù)
11.2 使用函數(shù)
11.2.1 文本處理函數(shù)
11.2.2 日期和時間處理函數(shù)
11.2.3 數(shù)值處理函數(shù)
11.3 小結(jié)
第12章 匯總數(shù)據(jù)
12.1 聚集函數(shù)
12.1.1 AVG()函數(shù)
12.1.2 COUNT()函數(shù)
12.1.3 MAX()函數(shù)
12.1.4 MIN()函數(shù)
12.1.5 SUM()函數(shù)
12.2 聚集不同值
12.3 組合聚集函數(shù)
12.4 小結(jié)
第13章 分組數(shù)據(jù)
13.1 數(shù)據(jù)分組
13.2 創(chuàng)建分組
13.3 過濾分組
13.4 分組和排序
13.5 SELECT子句順序
13.6 小結(jié)
第14章 使用子查詢
14.1 子查詢
14.2 利用子查詢進(jìn)行過濾
14.3 作為計算字段使用子查詢
14.4 小結(jié)
第15章 聯(lián)結(jié)表
15.1 聯(lián)結(jié)
15.1.1 關(guān)系表
15.1.2 為什么要使用聯(lián)結(jié)
15.2 創(chuàng)建聯(lián)結(jié)
15.2.1 WHERE子句的重要性
15.2.2 內(nèi)部聯(lián)結(jié)
15.2.3 聯(lián)結(jié)多個表
15.3 小結(jié)
第16章 創(chuàng)建高級聯(lián)結(jié)
16.1 使用表別名
16.2 使用不同類型的聯(lián)結(jié)
16.2.1 自聯(lián)結(jié)
16.2.2 自然聯(lián)結(jié)
16.2.3 外部聯(lián)結(jié)
16.3 使用帶聚集函數(shù)的聯(lián)結(jié)
16.4 使用聯(lián)結(jié)和聯(lián)結(jié)條件
16.5 小結(jié)
第17章 組合查詢
17.1 組合查詢
17.2 創(chuàng)建組合查詢
17.2.1 使用UNION
17.2.2 UNION規(guī)則
17.2.3 包含或取消重復(fù)的行
17.2.4 對組合查詢結(jié)果排序
17.3 小結(jié)
第18章 全文本搜索
18.1 理解全文本搜索
18.2 使用全文本搜索
18.2.1 啟用全文本搜索支持
18.2.2 進(jìn)行全文本搜索
18.2.3 使用查詢擴(kuò)展
18.2.4 布爾文本搜索
18.2.5 全文本搜索的使用說明
18.3 小結(jié)
第19章 插入數(shù)據(jù)
19.1 數(shù)據(jù)插入
19.2 插入完整的行
19.3 插入多個行
19.4 插入檢索出的數(shù)據(jù)
19.5 小結(jié)
第20章 更新和刪除數(shù)據(jù)
20.1 更新數(shù)據(jù)
20.2 刪除數(shù)據(jù)
20.3 更新和刪除的指導(dǎo)原則
20.4 小結(jié)
第21章 創(chuàng)建和操縱表
21.1 創(chuàng)建表
21.1.1 表創(chuàng)建基礎(chǔ)
21.1.2 使用NULL值
21.1.3 主鍵再介紹
21.1.4 使用AUTO_ INCREMENT
21.1.5 指定默認(rèn)值
21.1.6 引擎類型
21.2 更新表
21.3 刪除表
21.4 重命名表
21.5 小結(jié)
第22章 使用視圖
22.1 視圖
22.1.1 為什么使用視圖
22.1.2 視圖的規(guī)則和限制
22.2 使用視圖
22.2.1 利用視圖簡化復(fù)雜的聯(lián)結(jié)
22.2.2 用視圖重新格式化檢索出的數(shù)據(jù)
22.2.3 用視圖過濾不想要的數(shù)據(jù)
22.2.4 使用視圖與計算字段
22.2.5 更新視圖
22.3 小結(jié)
第23章 使用存儲過程
23.1 存儲過程
23.2 為什么要使用存儲過程
23.3 使用存儲過程
23.3.1 執(zhí)行存儲過程
23.3.2 創(chuàng)建存儲過程
23.3.3 刪除存儲過程
23.3.4 使用參數(shù)
23.3.5 建立智能存儲過程
23.3.6 檢查存儲過程
23.4 小結(jié)
第24章 使用游標(biāo)
24.1 游標(biāo)
24.2 使用游標(biāo)
24.2.1 創(chuàng)建游標(biāo)
24.2.2 打開和關(guān)閉游標(biāo)
24.2.3 使用游標(biāo)數(shù)據(jù)
24.3 小結(jié)
第25章 使用觸發(fā)器
25.1 觸發(fā)器
25.2 創(chuàng)建觸發(fā)器
25.3 刪除觸發(fā)器
25.4 使用觸發(fā)器
25.4.1 INSERT觸發(fā)器
25.4.2 DELETE觸發(fā)器
25.4.3 UPDATE觸發(fā)器
25.4.4 關(guān)于觸發(fā)器的進(jìn)一步介紹
25.5 小結(jié)
第26章 管理事務(wù)處理
26.1 事務(wù)處理
26.2 控制事務(wù)處理
26.2.1 使用ROLLBACK
26.2.2 使用COMMIT
26.2.3 使用保留點(diǎn)
26.2.4 更改默認(rèn)的提交行為
26.3 小結(jié)
第27章 全球化和本地化
27.1 字符集和校對順序
27.2 使用字符集和校對順序
27.3 小結(jié)
第28章 安全管理
28.1 訪問控制
28.2 管理用戶
28.2.1 創(chuàng)建用戶賬號
28.2.2 刪除用戶賬號
28.2.3 設(shè)置訪問權(quán)限
28.2.4 更改口令
28.3 小結(jié)
第29章 數(shù)據(jù)庫維護(hù)
29.1 備份數(shù)據(jù)
29.2 進(jìn)行數(shù)據(jù)庫維護(hù)
29.3 診斷啟動問題
29.4 查看日志文件
29.5 小結(jié)
第30章 改善性能
30.1 改善性能
30.2 小結(jié)
附錄A MySQL入門
附錄B 樣例表
附錄C MySQL語句的語法
附錄D MySQL數(shù)據(jù)類型
附錄E MySQL保留字
索引
第1章 了解SQL
1.1 數(shù)據(jù)庫基礎(chǔ)
你正在閱讀本書,這表明你需要以某種方式與數(shù)據(jù)庫打交道。在深入學(xué)習(xí)MySQL及其SQL語言的實(shí)現(xiàn)之前,應(yīng)該對數(shù)據(jù)庫及數(shù)據(jù)庫技術(shù)的某些基本概念有所了解。
你可能還沒有意識到,其實(shí)你自己一直在使用數(shù)據(jù)庫。每當(dāng)你從自己的電子郵件地址簿里查找名字時,你就在使用數(shù)據(jù)庫。