本書從零基礎讀者的角度出發(fā),通過通俗易懂的語言、豐富多彩的實例,循序漸進地讓讀者在實踐中學習MySQL編程知識,并提升自己的實際開發(fā)能力。
全書共分為4篇18章,內容包括MySQL概述、MySQL圖形化管理工具、MySQL語言基礎、數(shù)據(jù)庫和數(shù)據(jù)表的操作、數(shù)據(jù)查詢、MySQL函數(shù)、索引、視圖、數(shù)據(jù)完整性約束、存儲過程與存儲函數(shù)、觸發(fā)器、事件、數(shù)據(jù)的備份與恢復、性能優(yōu)化、安全管理、MySQL系統(tǒng)管理、基于Java+MySQL的看店寶和基于Python+MySQL的智慧校園考試系統(tǒng)。書中知識點講解細致,側重介紹每個知識點的使用場景,涉及的代碼給出了詳細的注釋,可以使讀者輕松領會MySQL程序開發(fā)的精髓,快速提高開發(fā)技能。同時,本書配套了大量教學視頻,掃碼即可觀看,還提供所有程序源文件,方便讀者實踐。
本書適合MySQL初學者、數(shù)據(jù)庫工程師等自學使用,也可用作高等院校相關專業(yè)的教材及參考書。
第1篇 基礎知識篇
第1章 MySQL概述 2 視頻講解:4節(jié),22分鐘
1.1 了解MySQL 3
1.1.1 MySQL數(shù)據(jù)庫的概念 3
1.1.2 MySQL的發(fā)展史 3
1.1.3 MySQL的優(yōu)勢 3
1.2 MySQL特性 3
1.3 MySQL的應用環(huán)境 5
1.4 MySQL服務器的安裝和配置 5
1.4.1 MySQL服務器下載 5
1.4.2 MySQL服務器安裝 7
1.4.3 啟動、連接、斷開和停止MySQL服務器 14
1.4.4 打開MySQL 8.0 Command Line Client 17
本章知識思維導圖 18
第2章 MySQL Workbench圖形化管理工具 19
2.1 MySQL Workbench圖形化管理工具概述 20
2.2 MySQL Workbench安裝 20
2.3 創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表 20
2.3.1 創(chuàng)建數(shù)據(jù)庫 20
2.3.2 創(chuàng)建數(shù)據(jù)表 22
2.4 添加數(shù)據(jù) 23
2.5 數(shù)據(jù)的導出和導入 24
2.5.1 數(shù)據(jù)的導出 24
2.5.2 數(shù)據(jù)的導入 25
本章知識思維導圖 26
第3章 MySQL語言基礎 27 視頻講解:3節(jié),45分鐘
3.1 數(shù)據(jù)類型 28
3.1.1 數(shù)字類型 28
3.1.2 字符串類型 28
3.1.3 日期和時間數(shù)據(jù)類型 30
3.2 運算符 30
3.2.1 算術運算符 30
3.2.2 比較運算符 31
3.2.3 邏輯運算符 34
3.2.4 位運算符 36
3.2.5 運算符的優(yōu)先級 37
3.3 流程控制語句 37
3.3.1 IF語句 37
3.3.2 CASE語句 38
3.3.3 WHILE循環(huán)語句 39
3.3.4 LOOP循環(huán)語句 40
3.3.5 REPEAT循環(huán)語句 41
本章知識思維導圖 43
第4章 數(shù)據(jù)庫和數(shù)據(jù)表操作 44 視頻講解:12節(jié),78分鐘
4.1 數(shù)據(jù)庫操作 45
4.1.1 創(chuàng)建數(shù)據(jù)庫 45
4.1.2 查看數(shù)據(jù)庫 45
4.1.3 選擇數(shù)據(jù)庫 46
4.1.4 刪除數(shù)據(jù)庫 46
4.2 數(shù)據(jù)表操作 46
4.2.1 創(chuàng)建數(shù)據(jù)表 46
4.2.2 查看表結構 47
4.2.3 修改表結構 48
4.2.4 重命名表 49
4.2.5 刪除數(shù)據(jù)表 50
4.3 語句操作 50
4.3.1 插入記錄 50
4.3.2 查詢數(shù)據(jù)庫記錄 51
4.3.3 修改記錄 55
4.3.4 刪除記錄 56
本章知識思維導圖 56
第5章 數(shù)據(jù)查詢 57 視頻講解:8節(jié),73分鐘
5.1 基本查詢語句 58
5.2 單表查詢 59
5.2.1 查詢所有字段 59
5.2.2 查詢指定字段 59
5.2.3 查詢指定數(shù)據(jù) 60
5.2.4 帶IN關鍵字的查詢 60
5.2.5 帶BETWEEN AND的范圍查詢 61
5.2.6 帶LIKE的字符匹配查詢 62
5.2.7 用IS NULL關鍵字查詢空值 62
5.2.8 帶AND的多條件查詢 63
5.2.9 帶OR的多條件查詢 63
5.2.10 用DISTINCT關鍵字去除結果中的重復行 64
5.2.11 用ORDEBY關鍵字對查詢結果排序 64
5.2.12 用GROUP BY關鍵字分組查詢 64
5.2.13 用LIMIT限制查詢結果的數(shù)量 66
5.3 使用聚合函數(shù)查詢 66
5.3.1 COUNT()函數(shù) 67
5.3.2 SUM()函數(shù) 67
5.3.3 AVG()函數(shù) 67
5.3.4 MAX()函數(shù) 68
5.3.5 MIN()函數(shù) 68
5.4 連接查詢 69
5.4.1 內連接查詢 69
5.4.2 外連接查詢 70
5.4.3 復合條件連接查詢 71
5.5 子查詢 71
5.5.1 帶IN關鍵字的子查詢 72
5.5.2 帶比較運算符的子查詢 73
5.5.3 帶EXISTS關鍵字的子查詢 73
5.5.4 帶ANY關鍵字的子查詢 74
5.5.5 帶ALL關鍵字的子查詢 75
5.6 合并查詢結果 76
5.7 定義表和字段的別名 77
5.7.1 為表取別名 77
5.7.2 為字段取別名 77
5.8 使用正則表達式查詢 78
5.8.1 匹配指定字符中的任意一個 79
5.8.2 使用“*”和“+”來匹配多個字符 79
本章知識思維導圖 80
第6章 MySQL函數(shù) 81 視頻講解:7節(jié),34分鐘
6.1 MySQL函數(shù)概述 82
6.2 數(shù)學函數(shù) 82
6.2.1 ABS(x)函數(shù) 83
6.2.2 FLOOR(x)函數(shù) 83
6.2.3 RAND()函數(shù) 83
6.2.4 PI()函數(shù) 84
6.2.5 TRUNCATE(x,y)函數(shù) 84
6.2.6 ROUND(x)函數(shù)和ROUND(x,y)函數(shù) 84
6.2.7 SQRT(x)函數(shù) 85
6.3 字符串函數(shù) 85
6.3.1 INSERT(s1,x,len,s2)函數(shù) 86
6.3.2 UPPER(s),UCASE(s)函數(shù) 86
6.3.3 LEFT(s,n)函數(shù) 87
6.3.4 RTRIM(s)函數(shù) 87
6.3.5 SUBSTRING(s,n,len)函數(shù) 87
6.3.6 REVERSE(s)函數(shù) 87
6.3.7 FIELD(s,s1,s2,...)函數(shù) 88
6.4 日期和時間函數(shù) 88
6.4.1 CURDATE()函數(shù)和CURRENT_DATE()函數(shù) 89
6.4.2 CURTIME()函數(shù)和CURRENT_TIME()函數(shù) 89
6.4.3 NOW()函數(shù) 90
6.4.4 DATEDIFF(d1,d2)函數(shù) 90
6.4.5 ADDDATE(d,n)函數(shù) 90
6.4.6 ADDDATE(d,INTERVAL exp type)函數(shù) 91
6.4.7 SUBDATE(d,n)函數(shù) 91
6.5 條件判斷函數(shù) 91
6.6 系統(tǒng)信息函數(shù) 92
6.7 加密函數(shù) 93
6.8 其他函數(shù) 93
本章知識思維導圖 94
第2篇 高級應用篇
第7章 索引 96 視頻講解:3節(jié),21分鐘
7.1 索引概述 97
7.1.1 MySQL索引概述 97
7.1.2 MySQL索引分類 97
7.2 創(chuàng)建索引 98
7.2.1 在建立數(shù)據(jù)表時創(chuàng)建索引 98
7.2.2 在已建立的數(shù)據(jù)表中創(chuàng)建索引 102
7.2.3 修改數(shù)據(jù)表結構添加索引 106
7.3 刪除索引 107
本章知識思維導圖 108
第8章 視圖 109 視頻講解:3節(jié),27分鐘
8.1 視圖概述 110
8.1.1 視圖的概念 110
8.1.2 視圖的作用 110
8.2 創(chuàng)建視圖 111
8.2.1 查看創(chuàng)建視圖的權限 111
8.2.2 創(chuàng)建視圖 111
8.2.3 創(chuàng)建視圖的注意事項 112
8.3 管理視圖 113
8.3.1 查看視圖 113
8.3.2 修改視圖 114
8.3.3 更新視圖 116
8.3.4 刪除視圖 118
本章知識思維導圖 119
第9章 數(shù)據(jù)完整性約束 120 視頻講解:5節(jié),29分鐘
9.1 定義完整性約束 121
9.1.1 實體完整性 121
9.1.2 參照完整性 123
9.1.3 用戶定義的完整性 126
9.2 命名完整性約束 127
9.3 更新完整性約束 128
9.3.1 刪除完整性約束 129
9.3.2 修改完整性約束 129
本章知識思維導圖 130
第10章 存儲過程與存儲函數(shù) 131 視頻講解:8節(jié),42分鐘
10.1 創(chuàng)建存儲過程和存儲函數(shù) 132
10.1.1 創(chuàng)建存儲過程 132
10.1.2 創(chuàng)建存儲函數(shù) 133
10.1.3 變量的應用 134
10.1.4 光標的運用 137
10.2 存儲過程和存儲函數(shù)的調用 138
10.2.1 調用存儲過程 138
10.2.2 調用存儲函數(shù) 138
10.3 查看存儲過程和存儲函數(shù) 139
10.3.1 SHOW STATUS語句 139
10.3.2 SHOW CREATE語句 139
10.4 修改存儲過程和存儲函數(shù) 140
10.5 刪除存儲過程和存儲函數(shù) 141
本章知識思維導圖 142
第11章 觸發(fā)器 143 視頻講解:4節(jié),25分鐘
11.1 創(chuàng)建觸發(fā)器 144
11.1.1 創(chuàng)建單個執(zhí)行語句的觸發(fā)器 144
11.1.2 創(chuàng)建具有多個執(zhí)行語句的觸發(fā)器 145
11.2 查看觸發(fā)器 146
11.2.1 SHOW TRIGGERS 146
11.2.2 查看 triggers表中觸發(fā)器信息 147
11.3 執(zhí)行觸發(fā)器 147
11.4 刪除觸發(fā)器 148
本章知識思維導圖 150
第12章 事件 151 視頻講解:4節(jié),18分鐘
12.1 事件概述 152
12.1.1 查看事件是否開啟 152
12.1.2 開啟事件 153
12.2 創(chuàng)建事件 153
12.3 修改事件 155
12.4 刪除事件 157
本章知識思維導圖 158
第3篇 系統(tǒng)管理篇
第13章 數(shù)據(jù)的備份與恢復 160 視頻講解:4節(jié),43分鐘
13.1 數(shù)據(jù)備份 161
13.1.1 使用mysqldump命令備份 161
13.1.2 直接復制整個數(shù)據(jù)庫目錄 163
13.1.3 使用mysqlhotcopy工具快速備份 163
13.2 數(shù)據(jù)恢復 164
13.2.1 使用mysql命令還原數(shù)據(jù) 164
13.2.2 直接復制到數(shù)據(jù)庫目錄 164
13.3 數(shù)據(jù)庫遷移 165
13.3.1 相同版本的MySQL數(shù)據(jù)庫之間的遷移 165
13.3.2 不同數(shù)據(jù)庫之間的遷移 166
13.4 表的導出和導入 166
13.4.1 用SELECT ...INTO OUTFILE導出文本文件 166
13.4.2 用mysqldump命令導出文本文件 167
13.4.3 用mysql命令導出文本文件 168
本章知識思維導圖 169
第14章 性能優(yōu)化 170 視頻講解:5節(jié),30分鐘
14.1 優(yōu)化概述 171
14.2 優(yōu)化查詢 171
14.2.1 分析查詢語句 172
14.2.2 索引對查詢速度的影響 173
14.2.3 使用索引查詢 174
14.3 優(yōu)化數(shù)據(jù)庫結構 175
14.3.1 將字段很多的表分解成多個表 175
14.3.2 增加中間表 176
14.3.3 優(yōu)化插入記錄的速度 177
14.3.4 分析表、檢查表和優(yōu)化表 178
14.4 查詢高速緩存 179
14.4.1 檢驗高速緩存是否開啟 179
14.4.2 使用高速緩存 180
14.5 優(yōu)化多表查詢 180
14.6 優(yōu)化表設計 182
本章知識思維導圖 183
第15章 安全管理 184 視頻講解:4節(jié),29分鐘
15.1 安全保護策略概述 185
15.2 用戶和權限管理 185
15.2.1 使用CREATE USER命令創(chuàng)建用戶 186
15.2.2 使用DROP USER命令刪除用戶 186
15.2.3 使用RENAME USER命令重命名用戶 186
15.2.4 GRANT和REVOKE命令 187
15.3 MySQL數(shù)據(jù)庫安全常見問題 189
15.3.1 權限更改何時生效 189
15.3.2 設置賬戶密碼 189
15.3.3 使密碼更安全 190
15.4 狀態(tài)文件和日志文件 190
15.4.1 進程ID文件 191
15.4.2 日志文件管理 191
本章知識思維導圖 199
第16章 MySQL系統(tǒng)管理 200
16.1 MySQL系統(tǒng)管理及安全問題 201
16.1.1 管理職責概述 201
16.1.2 日常管理 202
16.1.3 安全問題 203
16.1.4 數(shù)據(jù)庫修復和維護 203
16.2 數(shù)據(jù)目錄 204
16.2.1 數(shù)據(jù)目錄的位置 204
16.2.2 數(shù)據(jù)目錄的結構 206
16.3 MySQL服務器如何提供對數(shù)據(jù)的訪問 206
16.4 MySQL數(shù)據(jù)庫/數(shù)據(jù)表在文件系統(tǒng)里的表示 207
16.4.1 MySQL數(shù)據(jù)庫在文件系統(tǒng)里的表示 207
16.4.2 MySQL數(shù)據(jù)表在文件系統(tǒng)里的表示 208
16.5 SQL語句如何映射為數(shù)據(jù)表文件操作 209
16.5.1 創(chuàng)建數(shù)據(jù)表 209
16.5.2 更新數(shù)據(jù)表 209
16.5.3 刪除數(shù)據(jù)表 210
16.6 操作系統(tǒng)對數(shù)據(jù)庫和數(shù)據(jù)表命名的限制 210
16.7 MySQL狀態(tài)文件和日志文件 211
本章知識思維導圖 214
第4篇 項目實戰(zhàn)篇
第17章 基于Java+MySQL的看店寶(京東版) 216
17.1 需求分析 217
17.2 系統(tǒng)設計 217
17.2.1 系統(tǒng)目標 217
17.2.2 構建開發(fā)環(huán)境 217
17.2.3 系統(tǒng)功能結構 217
17.2.4 業(yè)務流程圖 218
17.2.5 系統(tǒng)預覽 219
17.3 數(shù)據(jù)庫設計 222
17.3.1 數(shù)據(jù)庫概要說明 222
17.3.2 數(shù)據(jù)庫E-R圖分析 222
17.3.3 數(shù)據(jù)表結構 223
17.4 技術準備 224
17.4.1 Servlet 3.0服務 224
17.4.2 Jsoup爬蟲 226
17.5 數(shù)據(jù)模型設計 228
17.5.1 模塊概述 228
17.5.2 代碼實現(xiàn) 229
17.6 持久層接口設計 231
17.6.1 模塊概述 231
17.6.2 代碼實現(xiàn) 231
17.7 爬蟲服務設計 231
17.7.1 模塊概述 231
17.7.2 代碼實現(xiàn) 231
17.8 數(shù)據(jù)加工處理服務設計 237
17.8.1 模塊概述 237
17.8.2 代碼實現(xiàn) 237
17.9 運行項目 243
本章知識思維導圖 248
第18章 基于Python+MySQL的智慧校園考試系統(tǒng) 249
18.1 需求分析 250
18.2 系統(tǒng)功能設計 250
18.2.1 系統(tǒng)功能結構 250
18.2.2 系統(tǒng)業(yè)務流程 250
18.2.3 系統(tǒng)預覽 251
18.3 系統(tǒng)開發(fā)必備 252
18.3.1 系統(tǒng)開發(fā)環(huán)境 252
18.3.2 文件夾組織結構 252
18.4 數(shù)據(jù)庫設計 253
18.4.1 數(shù)據(jù)庫概要說明 253
18.4.2 數(shù)據(jù)表模型 254
18.5 用戶登錄模塊設計 256
18.5.1 用戶登錄模塊概述 256
18.5.2 使用Django默認授權機制實現(xiàn)普通登錄 256
18.5.3 機構注冊功能的實現(xiàn) 263
18.6 核心答題功能的設計 268
18.6.1 答題首頁設計 268
18.6.2 考試詳情頁面 270
18.6.3 答題功能的實現(xiàn) 272
18.6.4 提交答案 276
18.6.5 批量錄入題庫 278
本章知識思維導圖 284