MySQL是世界上頗受歡迎的數(shù)據(jù)庫管理系統(tǒng)。本書從簡單的數(shù)據(jù)檢索開始,逐步深入講解一些復雜的內(nèi)容,包括子查詢、連接的使用、全文搜索、存儲過程、游標、觸發(fā)器、數(shù)據(jù)庫維護,等等。本書重點突出、條理清晰,系統(tǒng)而扼要地讓你學到應該學到的知識,使你在不經(jīng)意間功力大增。第2版基于MySQL 8進行了全面修訂。
1.專業(yè)作者,專業(yè)背書
本書由擁有30多年豐富經(jīng)驗的專業(yè)技術(shù)作家本·福達(Ben Forta)撰寫,他不僅是Adobe公司的教育計劃高級總監(jiān),也是多部全球熱銷技術(shù)圖書的作者。
2.全面更新,緊跟技術(shù)前沿
基于新版本的MySQL 8進行了全面修訂,確保您學到的都是新的技術(shù)和實踐。無論是數(shù)據(jù)庫新手還是尋求技術(shù)升級的專業(yè)人士,都能在這本書中找到您需要的前沿知識。
3.實戰(zhàn)導向,快速上手
本書緊貼實戰(zhàn)需要,直接從數(shù)據(jù)檢索開始,逐步深入各種復雜內(nèi)容,幫助您快速上手并成為MySQL高手。無論您是SQL新手還是希望提升工作效率的專業(yè)人士,本書都是您的理想選擇。
4.廣泛適用,滿足不同需求
本書適合各類讀者,包括數(shù)據(jù)庫初學者、軟件開發(fā)及管理人員、MySQL初級入門人員,以及希望在應用程序開發(fā)中使用MySQL的人群。無論您是希望通過MySQL提高工作效率,還是快速學會并使用MySQL,本書都能滿足您的需求。
本·福達(Ben Forta),專業(yè)的技術(shù)作家,在計算機產(chǎn)品開發(fā)、支持、培訓和營銷等方面擁有30多年的豐富經(jīng)驗。他也是Adobe公司的教育計劃高級總監(jiān)。多年來,他撰寫了SQL、正則表達式、JSP、WAP和Windows開發(fā)等方面的十多部技術(shù)圖書,其中不少是世界熱銷書,已被翻譯為多種語言在全世界出版發(fā)行。
第 1章 了解SQL 1
1.1 數(shù)據(jù)庫基礎 1
1.1.1 什么是數(shù)據(jù)庫 2
1.1.2 表 2
1.1.3 列和數(shù)據(jù)類型 3
1.1.4 行 4
1.1.5 主鍵 4
1.2 什么是SQL 5
1.3 動手實踐 6
1.4 小結(jié) 7
第 2章 MySQL簡介 8
2.1 什么是MySQL 8
2.1.1 客戶端服務器軟件 8
2.1.2 MySQL版本 10
2.2 MySQL工具 10
2.2.1 mysql命令行工具 10
2.2.2 MySQL Workbench 11
2.2.3 其他工具 12
2.3 小結(jié) 13
第3章 使用MySQL 14
3.1 使用命令行工具 15
3.1.1 選擇數(shù)據(jù)庫 15
3.1.2 了解數(shù)據(jù)庫和表 16
3.2 使用MySQL Workbench 19
3.2.1 開始使用 19
3.2.2 MySQL Workbench用戶界面 20
3.2.3 選擇數(shù)據(jù)庫 21
3.2.4 學習數(shù)據(jù)庫和表 22
3.2.5 執(zhí)行SQL語句 22
3.3 下一步 23
3.4 小結(jié) 23
第4章 檢索數(shù)據(jù) 24
4.1 SELECT語句 24
4.2 檢索單列 24
4.3 檢索多列 26
4.4 檢索所有列 28
4.5 檢索不同的行 28
4.6 限制結(jié)果 30
4.7 使用完全限定的表名 31
4.8 使用注釋 32
4.9 小結(jié) 33
4.10 挑戰(zhàn)題 33
第5章 排序檢索數(shù)據(jù) 34
5.1 排序數(shù)據(jù) 34
5.2 按多列排序 36
5.3 按列位置排序 37
5.4 指定排序方向 38
5.5 小結(jié) 40
5.6 挑戰(zhàn)題 40
第6章 過濾數(shù)據(jù) 42
6.1 使用WHERE子句 42
6.2 WHERE子句運算符 43
6.2.1 檢查單個值 44
6.2.2 不匹配檢查 45
6.2.3 范圍檢查 46
6.2.4 空值檢查 47
6.3 小結(jié) 48
6.4 挑戰(zhàn)題 48
第7章 高級數(shù)據(jù)過濾 49
7.1 組合WHERE子句 49
7.1.1 AND運算符 49
7.1.2 OR運算符 50
7.1.3 運算符的優(yōu)先級 51
7.2 IN運算符 52
7.3 NOT運算符 54
7.4 小結(jié) 56
7.5 挑戰(zhàn)題 56
第8章 用通配符進行過濾 58
8.1 LIKE運算符 58
8.1.1 百分號(%)通配符 59
8.1.2 下劃線(_)通配符 60
8.2 使用通配符的技巧 61
8.3 小結(jié) 62
8.4 挑戰(zhàn)題 62
第9章 用正則表達式進行搜索 63
9.1 正則表達式介紹 63
9.2 使用MySQL正則表達式 64
9.2.1 基本字符匹配 64
9.2.2 進行OR匹配 66
9.2.3 匹配幾個字符之一 67
9.2.4 匹配范圍 68
9.2.5 匹配特殊字符 69
9.2.6 匹配字符類 70
9.2.7 匹配多個實例 71
9.2.8 定位符 73
9.3 小結(jié) 74
9.4 挑戰(zhàn)題 74
第 10章 創(chuàng)建計算字段 75
10.1 計算字段 75
10.2 拼接字段 76
10.3 執(zhí)行算術(shù)運算 79
10.4 小結(jié) 80
10.5 挑戰(zhàn)題 81
第 11章 使用數(shù)據(jù)處理函數(shù) 82
11.1 函數(shù) 82
11.2 使用函數(shù) 83
11.2.1 文本處理函數(shù) 83
11.2.2 日期和時間處理函數(shù) 85
11.2.3 數(shù)值處理函數(shù) 89
11.3 小結(jié) 89
11.4 挑戰(zhàn)題 90
第 12章 匯總數(shù)據(jù) 91
12.1 聚合函數(shù) 91
12.1.1 Avg()函數(shù) 92
12.1.2 Count()函數(shù) 93
12.1.3 Max()函數(shù) 94
12.1.4 Min()函數(shù) 95
12.1.5 Sum()函數(shù) 95
12.2 聚合不同值 96
12.3 組合聚合函數(shù) 97
12.4 小結(jié) 98
12.5 挑戰(zhàn)題 98
第 13章 分組數(shù)據(jù) 99
13.1 數(shù)據(jù)分組 99
13.2 創(chuàng)建分組 100
13.3 過濾分組 101
13.4 分組和排序 103
13.5 分組與數(shù)據(jù)匯總相結(jié)合 105
13.6 SELECT子句順序 105
13.7 小結(jié) 106
13.8 挑戰(zhàn)題 106
第 14章 使用子查詢 108
14.1 子查詢 108
14.2 利用子查詢進行過濾 108
14.3 作為計算字段使用子查詢 111
14.4 小結(jié) 114
14.5 挑戰(zhàn)題 114
第 15章 表連接 116
15.1 連接 116
15.1.1 關系表 116
15.1.2 為什么要使用連接 118
15.2 創(chuàng)建連接 118
15.2.1 WHERE子句的重要性 119
15.2.2 內(nèi)連接 122
15.2.3 連接多張表 123
15.3 小結(jié) 125
15.4 挑戰(zhàn)題 126
第 16章 創(chuàng)建高級連接 127
16.1 使用表別名 127
16.2 使用不同類型的連接 128
16.2.1 自連接 128
16.2.2 自然連接 130
16.2.3 外連接 131
16.3 使用帶聚合函數(shù)的連接 132
16.4 使用連接和連接條件 134
16.5 小結(jié) 134
16.6 挑戰(zhàn)題 134
第 17章 組合查詢 136
17.1 組合查詢簡介 136
17.2 創(chuàng)建組合查詢 136
17.2.1 使用UNION 137
17.2.2 UNION規(guī)則 138
17.2.3 包含或取消重復的行 139
17.2.4 對組合查詢結(jié)果排序 140
17.3 小結(jié) 141
17.4 挑戰(zhàn)題 141
第 18章 全文搜索 143
18.1 理解全文搜索 143
18.2 使用全文搜索 144
18.2.1 執(zhí)行全文搜索 144
18.2.2 使用查詢擴展 147
18.2.3 布爾文本搜索 149
18.2.4 全文搜索的使用說明 152
18.3 小結(jié) 153
18.4 挑戰(zhàn)題 153
第 19章 插入數(shù)據(jù) 154
19.1 數(shù)據(jù)插入 154
19.2 插入完整的行 154
19.3 插入多行 158
19.4 插入檢索出的數(shù)據(jù) 159
19.5 小結(jié) 161
19.6 挑戰(zhàn)題 161
第 20章 更新數(shù)據(jù)和刪除數(shù)據(jù) 162
20.1 更新數(shù)據(jù) 162
20.2 刪除數(shù)據(jù) 164
20.3 更新數(shù)據(jù)和刪除數(shù)據(jù)的指導原則 165
20.4 小結(jié) 166
20.5 挑戰(zhàn)題 166
第 21章 創(chuàng)建和操作表 167
21.1 創(chuàng)建表 167
21.1.1 表創(chuàng)建基礎 167
21.1.2 使用NULL值 169
21.1.3 重溫主鍵 170
21.1.4 使用AUTO_INCREMENT 171
21.1.5 指定默認值 172
21.1.6 引擎類型 173
21.2 變更表 175
21.3 刪除表 176
21.4 重命名表 176
21.5 小結(jié) 177
21.6 挑戰(zhàn)題 177
第 22章 使用視圖 178
22.1 視圖 178
22.1.1 為什么使用視圖 179
22.1.2 視圖的規(guī)則和限制 179
22.2 視圖的使用和更新 180
22.2.1 利用視圖簡化復雜的連接 180
22.2.2 用視圖重新格式化檢索出的數(shù)據(jù) 181
22.2.3 用視圖過濾不想要的數(shù)據(jù) 183
22.2.4 使用視圖與計算字段 183
22.2.5 更新視圖 185
22.3 小結(jié) 185
22.4 挑戰(zhàn)題 186
第 23章 使用存儲過程 187
23.1 存儲過程 187
23.2 為什么要使用存儲過程 188
23.3 如何使用存儲過程 189
23.3.1 執(zhí)行存儲過程 189
23.3.2 創(chuàng)建存儲過程 189
23.3.3 DELIMITER挑戰(zhàn) 190
23.3.4 刪除存儲過程 191
23.3.5 使用參數(shù) 192
23.3.6 建立智能存儲過程 195
23.3.7 檢查存儲過程 197
23.4 小結(jié) 198
23.5 挑戰(zhàn)題 198
第 24章 使用游標 199
24.1 游標 199
24.2 如何使用游標 199
24.2.1 創(chuàng)建游標 200
24.2.2 打開游標和關閉游標 200
24.2.3 使用游標數(shù)據(jù) 202
24.3 小結(jié) 206
第 25章 使用觸發(fā)器 207
25.1 觸發(fā)器 207
25.2 創(chuàng)建觸發(fā)器 208
25.3 刪除觸發(fā)器 209
25.4 使用不同的觸發(fā)器 209
25.4.1 INSERT觸發(fā)器 209
25.4.2 DELETE觸發(fā)器 210
25.4.3 UPDATE觸發(fā)器 211
25.5 關于觸發(fā)器的進一步介紹 212
25.6 小結(jié) 213
第 26章 管理事務處理 214
26.1 事務處理 214
26.2 控制事務處理 216
26.2.1 使用ROLLBACK 216
26.2.2 使用COMMIT 217
26.2.3 使用保存點 218
26.2.4 更改默認的提交行為 219
26.3 小結(jié) 219
第 27章 全球化和本地化 220
27.1 字符集和校對順序 220
27.2 使用字符集和校對順序 221
27.3 小結(jié) 223
第 28章 安全管理 224
28.1 訪問控制 224
28.2 用戶管理 225
28.2.1 創(chuàng)建用戶賬號 226
28.2.2 刪除用戶賬號 227
28.2.3 設置訪問權(quán)限 227
28.2.4 更改密碼 230
28.3 小結(jié) 231
第 29章 數(shù)據(jù)庫維護 232
29.1 備份數(shù)據(jù) 232
29.2 進行數(shù)據(jù)庫維護 232
29.3 診斷啟動問題 233
29.4 查看日志文件 234
29.5 小結(jié) 235
第30章 性能優(yōu)化 236
30.1 性能優(yōu)化概覽 236
30.2 小結(jié) 238
附錄A MySQL入門 239
附錄B 樣例表 241
附錄C MySQL語句的語法 248
附錄D MySQL數(shù)據(jù)類型 253
附錄E MySQL關鍵字 258