MySQL數(shù)據(jù)庫管理實戰(zhàn)
定 價:99 元
- 作者:甘長春,孟飛 著
- 出版時間:2019/4/1
- ISBN:9787115505842
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.138SQ
- 頁碼:434
- 紙張:膠版紙
- 版次:1
- 開本:16開
《MySQL數(shù)據(jù)庫管理實戰(zhàn)》詳細介紹了MySQL數(shù)據(jù)庫管理從入門到實戰(zhàn)在內(nèi)的所有知識。
《MySQL數(shù)據(jù)庫管理實戰(zhàn)》共分為18章,主要介紹了MySQL數(shù)據(jù)庫的系統(tǒng)管理與基本操作,MySQL數(shù)據(jù)庫的流程控制及函數(shù)、日期時間處理、分組統(tǒng)計、多表聯(lián)合操作,以及MySQL數(shù)據(jù)庫的內(nèi)部工作原理、存儲引擎、事務(wù)處理、存儲程序開發(fā)、備份恢復(fù)、性能優(yōu)化等內(nèi)容。
《MySQL數(shù)據(jù)庫管理實戰(zhàn)》步驟詳細,示例豐富,以實戰(zhàn)為主,講解直擊MySQL數(shù)據(jù)庫的本質(zhì),特別適合有志于從事數(shù)據(jù)庫開發(fā)與設(shè)計的入門級讀者閱讀。本書還可以供開設(shè)了數(shù)據(jù)庫課程的高等院校的師生閱讀,以及作為相關(guān)IT培訓(xùn)機構(gòu)的參考圖書。
MySQL是一種流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),憑借其體積小、速度快、成本低、以及源碼開放等特點。
本書作者在數(shù)據(jù)庫開發(fā)與管理方面具有多年的從業(yè)經(jīng)驗,并在高校承擔(dān)數(shù)據(jù)庫相關(guān)課程的教學(xué)工作。作者以業(yè)界實際需求和教學(xué)要求為立足點,寫作了這本強調(diào)實用性的圖書。
本書兼顧了MySQL數(shù)據(jù)庫初學(xué)者和進階人員的需要,涵蓋了從數(shù)據(jù)庫基礎(chǔ)知識(如基本管理、權(quán)限設(shè)置等)到操作(如多表操作、數(shù)據(jù)庫的備份與性能優(yōu)化)在內(nèi)的所有知識,內(nèi)容詳實,實例豐富,特別適合各個水平的MySQL開發(fā)人員閱讀,還可以作為高校數(shù)據(jù)庫專業(yè)的參考圖書。
本書內(nèi)容:
數(shù)據(jù)庫入門
MySQL基本管理
MySQL賬戶權(quán)限設(shè)置
MySQL數(shù)據(jù)表列的數(shù)據(jù)類型
MySQL表結(jié)構(gòu)的維護
MySQL的索引
MySQL的基本查詢
MySQL數(shù)據(jù)庫的字符集設(shè)計
MySQL的增加、刪除和修改操作
MySQL的流程控制及函數(shù)
MySQL的日期與時間
MySQL的分組與統(tǒng)計
MySQL的多表聯(lián)合操作
MySQL工作機制
MySQL存儲引擎
MySQL視圖、存儲程序
MySQL備份與恢復(fù)
全解MySQL性能優(yōu)化
甘長春,畢業(yè)于北京交通大學(xué)電氣工程及自動化專業(yè),當(dāng)前供職于中國鐵路北京局集團有限公司。自從參加工作以來,一直致力于計算機應(yīng)用系統(tǒng)的研發(fā)和建設(shè),先后參與了多個鐵路應(yīng)用項目的研發(fā)工作,同時,也與多家IT企業(yè)合作開發(fā)項目,主要負責(zé)數(shù)據(jù)庫架構(gòu)設(shè)計及應(yīng)用開發(fā)等工作。從2014年起,一直在天津市大學(xué)軟件學(xué)院及其他一些大學(xué)從事兼職教學(xué)工作,所授課程為PHP和Oracle。
孟飛,當(dāng)前就讀于內(nèi)蒙古工業(yè)大學(xué)自動化專業(yè),在學(xué)期間,完成了數(shù)字電子技術(shù)和模擬電子技術(shù)等大量實驗,參與內(nèi)蒙古自治區(qū)博士自然科學(xué)基金“混合微電網(wǎng)綜合協(xié)調(diào)控制與能量分配策略研究”和“風(fēng)光儲混合分布式發(fā)電系統(tǒng)協(xié)調(diào)控制與能量分配策略研究”項目研發(fā)。在致力于C及匯編語言研究的同時,還在自修數(shù)據(jù)庫,包括MySQL、Oracle,尤其在MySQL數(shù)據(jù)庫方面,曾經(jīng)與天津融創(chuàng)軟通科技有限公司合作,負責(zé)“學(xué)生成績分析與教師考核評價系統(tǒng)”項目的數(shù)據(jù)庫設(shè)計、優(yōu)化以及存儲程序開發(fā)等工作。
第 1章 數(shù)據(jù)庫入門 1
1.1 數(shù)據(jù)庫的發(fā)展史 1
1.2 數(shù)據(jù)庫中數(shù)據(jù)存儲形態(tài)(數(shù)據(jù)模型) 1
1.2.1 層次(階層)數(shù)據(jù)庫 2
1.2.2 網(wǎng)狀(網(wǎng)絡(luò))數(shù)據(jù)庫 2
1.2.3 關(guān)系數(shù)據(jù)庫 2
1.2.4 面向?qū)ο蟮臄?shù)據(jù)庫 2
1.3 為什么應(yīng)用開發(fā)離不開數(shù)據(jù)庫 3
1.4 SQL介紹 3
1.4.1 SQL簡介 3
1.4.2 SQL的特點 3
1.4.3 SQL的基本語句 4
第 2章 MySQL基本管理 5
2.1 MySQL的客戶端與服務(wù)器端 5
2.1.1 MySQL客戶端與服務(wù)器端的概念 5
2.1.2 MySQL客戶端 5
2.1.3 Navicat for MySQL的安裝 5
2.1.4 運行Navicat for MySQL 7
2.1.5 Navicat for MySQL的連接與使用 7
2.2 MySQL服務(wù)器的啟動與停止 9
2.2.1 SQL的組成部分 9
2.2.2 進入MySQL命令模式 10
2.2.3 創(chuàng)建數(shù)據(jù)庫 10
2.2.4 數(shù)據(jù)庫命名規(guī)范及改變當(dāng)前數(shù)據(jù)庫 11
2.2.5 刪除數(shù)據(jù)庫 11
2.2.6 創(chuàng)建數(shù)據(jù)表 12
2.3 刪除表 13
2.4 安全復(fù)制表 13
2.5 安全修改表 14
2.5.1 新增字段 14
2.5.2 刪除字段 15
2.5.3 修改字段 15
2.5.4 增加主鍵 16
2.6 MySQL命令行中不能輸入中文的解決辦法 16
第3章 MySQL賬戶權(quán)限設(shè)置 17
3.1 了解MySQL權(quán)限系統(tǒng) 17
3.2 MySQL權(quán)限操作 19
3.2.1 GRANT命令使用說明 19
3.2.2 權(quán)限相關(guān)操作 20
3.2.3 權(quán)限操作樣本 23
3.3 丟失MySQL ROOT密碼的解決方法 25
第4章 MySQL數(shù)據(jù)庫表列的數(shù)據(jù)類型 29
4.1 數(shù)值類型 29
4.1.1 整數(shù)類型 29
4.1.2 浮點類型 30
4.2 字符串類型 30
4.3 CHAR與VARCHAR類型區(qū)別 30
4.4 列類型屬性ZEROFILL(填充0) 31
4.5 列類型屬性UNSIGEND(無符號)與SIGNED(有符號) 31
4.6 TEXT與BLOB類型的區(qū)別 32
4.7 ENUM與SET類型處理 33
4.8 SET類型的處理方式 33
4.9 網(wǎng)站中常用數(shù)據(jù)類型介紹 34
4.10 DEFAULT(默認)使用技巧 35
第5章 MySQL表結(jié)構(gòu)的維護 36
5.1 表結(jié)構(gòu)的創(chuàng)建 36
5.1.1 MySQL表結(jié)構(gòu)創(chuàng)建語法解釋說明 36
5.1.2 MySQL表結(jié)構(gòu)創(chuàng)建實例 40
5.1.3 MySQL表名修改 43
5.2 表結(jié)構(gòu)的維護 43
5.2.1 MySQL添加字段 44
5.2.2 MySQL刪除字段 44
5.2.3 MySQL調(diào)整字段順序 44
5.2.4 MySQL刪除主鍵 45
5.2.5 MySQL增加主鍵 45
5.2.6 MySQL重命名列 45
5.2.7 MySQL改變列類型 46
5.2.8 MySQL添加索引 46
5.2.9 MySQL添加唯一索引 46
5.2.10 MySQL刪除索引 47
5.3 MySQL修改庫、表及列字符集 47
5.3.1 MySQL修改庫字符集 47
5.3.2 MySQL修改表字符集 47
5.3.3 MySQL修改列(字段)字符集 48
5.3.4 MySQL修改字符集的有關(guān)注意事項 48
5.3.5 MySQL字符集的查看 48
第6章 MySQL的索引 50
6.1 索引概述 50
6.1.1 關(guān)于索引的建議 51
6.1.2 MySQL中使用索引 51
6.2 UNIQUE實際開發(fā)中的使用方法 52
6.3 主鍵(primary key)使用方法 53
6.3.1 主鍵的作用 53
6.3.2 主鍵的創(chuàng)建方法 53
6.4 AUTO_INCREMENT自增使用技巧 54
6.4.1 AUTO_INCREMENT的屬性 54
6.4.2 使用AUTO_INCREMENT時的注意事項 54
6.4.3 關(guān)于MySQL的AUTO_INCREMENT問題分析 55
第7章 MySQL的基本查詢 57
7.1 SELECT的語法結(jié)構(gòu) 57
7.1.1 語法結(jié)構(gòu)說明 57
7.1.2 語法解釋 58
7.1.3 關(guān)于MySQL迭代 59
7.2 SELECT準備 59
7.3 SELECT、DELETE、UPDATE的WHERE子句 63
7.4 MySQL查詢、刪除、更新WHERE子句AND與OR 65
7.5 MySQL的CONCAT函數(shù) 65
7.6 GROUP_CONCAT ()分組拼接函數(shù) 66
7.6.1 函數(shù)使用 66
7.6.2 關(guān)于GROUP_CONCAT函數(shù)返回值長度限制說明 67
7.7 MySQL的DISTINCT使用方法 67
7.8 MySQL的IS NULL與IS NOT NULL使用方法 68
7.9 MySQL的IF()與IFNULL()使用方法 68
7.10 MySQL的ORDER BY子句的使用 70
7.10.1 ORDER BY子句第 一種使用方式 70
7.10.2 ORDER BY 子句第二種使用方式 70
7.11 MySQL的LIMIT關(guān)鍵字使用 71
7.12 MySQL的BETWEEN...AND...關(guān)鍵字使用 71
7.13 MySQL的IN關(guān)鍵字使用 72
7.13.1 IN的普通用法 72
7.13.2 IN的子查詢用法 72
7.14 MySQL的EXISTS關(guān)鍵字使用 73
7.15 MySQL查詢SET數(shù)據(jù)類型的方法 74
7.15.1 函數(shù)FIND_IN_SET介紹 74
7.15.2 將函數(shù)FIND_IN_SET運用于SET類型數(shù)據(jù)查詢 74
7.15.3 將函數(shù)FIND_IN_SET運用于排名 74
7.15.4 FIND_IN_SET與邏輯運算操作IN的區(qū)別 76
7.16 MySQL LIKE與NOT LIKE用法 77
7.16.1 LIKE的通配符 77
7.16.2 NOT LIKE 77
7.17 MySQL REGEXP正則的使用 78
7.17.1 REGEXP的運算符 78
7.17.2 REGEXP的通配符 78
7.17.3 REGEXP實例 79
7.18 MySQL RAND隨機函數(shù)使用 80
7.19 終端執(zhí)行SQL的方式 81
第8章 MySQL數(shù)據(jù)庫的字符集設(shè)計 83
8.1 MySQL的二進制與非二進制字符串 83
8.1.1 MySQL的二進制字符串及二進制類型 83
8.1.2 MySQL的BINARY、CHAR、VARCHAR的區(qū)別 86
8.2 MySQL字符集設(shè)置與常見問題處理 88
8.2.1 基本概念 88
8.2.2 MySQL系統(tǒng)變量 88
8.2.3 MySQL字符集支持的兩個方面 89
8.2.4 MySQL默認字符集的查看 89
8.2.5 MySQL默認字符集的修改 90
8.2.6 MySQL字符集的相互轉(zhuǎn)換過程 91
8.3 MySQL常用字符集選擇 92
8.4 MySQL字符集與校對規(guī)則 93
8.4.1 簡要說明 93
8.4.2 詳細說明 93
8.5 MySQL各字符集下漢字或字母所占字節(jié)數(shù) 95
8.6 MySQL字符集校對規(guī)則實例詳解 96
8.7 MySQL數(shù)據(jù)庫、表、字段字符集 97
8.7.1 創(chuàng)建數(shù)據(jù)庫、表、表列指定字符集 98
8.7.2 修改數(shù)據(jù)庫、表、表列的字符集 99
8.7.3 查看數(shù)據(jù)庫、表、表列的字符集 100
8.7.4 查看數(shù)據(jù)庫、表、表列的字符集的排序規(guī)則 101
第9章 MySQL的增加、刪除和修改操作 103
9.1 MySQL增加、刪除和修改操作的嚴格模式與寬松模式 103
9.1.1 嚴格與寬松的概念 103
9.1.2 嚴格模式與寬松模式的開啟與關(guān)閉 103
9.1.3 嚴格模式與寬松模式舉例 104
9.2 MySQL的增加數(shù)據(jù)INSERT 105
9.2.1 INSERT語法 105
9.2.2 INSERT語法共性說明 106
9.2.3 MySQL INSERT應(yīng)用舉例 107
9.3 MySQL的更新數(shù)據(jù)UPDATE 108
9.3.1 UPDATE語法 108
9.3.2 UPDATE實際應(yīng)用舉例 110
9.3.3 UPDATE應(yīng)用實例總結(jié) 113
9.4 MySQL的刪除數(shù)據(jù)DELETE 113
9.5 MySQL的左、右外連接查詢 116
9.5.1 左外連接舉例 116
9.5.2 右外連接舉例 116
第 10章 MySQL的流程控制與函數(shù) 118
10.1 MySQL操作符 118
10.1.1 MySQL算術(shù)運算符 118
10.1.2 MySQL比較運算符 118
10.1.3 MySQL邏輯運算符 119
10.1.4 MySQL位運算符 120
10.1.5 MySQL操作符的優(yōu)先級 120
10.1.6 MySQL操作符舉例 121
10.2 MySQL中的Boolean類型 125
10.2.1 Boolean說明 125
10.2.2 Boolean總結(jié) 125
10.3 MySQL的COALESCE與GREATEST 126
10.3.1 COALESCE()取非NULL(空)值 126
10.3.2 GREATEST()取最大值 126
10.4 MySQL流程控制語句 127
10.4.1 IF語句 127
10.4.2 CASE語句 129
10.4.3 WHILE語句 133
10.4.4 LOOP語句 134
10.4.5 REPEAT語句 135
10.5 MySQL函數(shù) 136
10.5.1 MySQL流程控制函數(shù) 136
10.5.2 MySQL字符串處理函數(shù) 138
10.5.3 MySQL數(shù)學(xué)函數(shù) 147
10.5.4 MySQL日期時間函數(shù) 152
10.5.5 MySQL其他函數(shù) 165
第 11章 MySQL的日期與時間 168
11.1 MySQL的日期與時間類型 168
11.1.1 YEAR類型 168
11.1.2 TIME類型 170
11.1.3 DATA類型 172
11.1.4 DATATIME類型 173
11.1.5 TIMESTAMP類型 175
11.1.6 MySQL的日期選取 176
11.1.7 MySQL選擇日期類型的原則 177
11.1.8 MySQL獲得當(dāng)前日期時間 177
11.2 MySQL日期與時間函數(shù)實例 177
11.2.1 STR_TO_DATE()函數(shù) 177
11.2.2 DATE_FORMAT()函數(shù) 178
11.2.3 TIME_FORMAT()函數(shù) 179
11.2.4 UNIX_TIMESTAMP()函數(shù) 180
11.2.5 INTERVAL expr TYPE()函數(shù) 181
11.2.6 給日期增加一個時間間隔函數(shù)DATE_ADD() 182
11.2.7 兩個日期相減函數(shù)DATEDIFF() 185
11.2.8 兩個時間相減函數(shù)TIMEDIFF() 185
11.2.9 兩個時間相減函數(shù)TIMESTAMPDIFF() 186
11.2.10 添加時間間隔函數(shù)TIMESTAMPADD() 189
第 12章 MySQL的分組與統(tǒng)計 193
12.1 MySQL COUNT()函數(shù) 193
12.1.1 準備工作 193
12.1.2 COUNT(*|n|空值|字段名) 193
12.1.3 DISTINCT與COUNT連用 194
12.1.4 GROUP BY(多個字段)與COUNT分組計數(shù) 194
12.1.5 CASE WHEN 語句與COUNT連用 195
12.2 MySQL MIN()、MAX()、AVG()和SUM()函數(shù) 196
12.2.1 準備工作 196
12.2.2 MAX()最大值函數(shù) 197
12.2.3 MIN()最小值函數(shù) 198
12.2.4 AVG()求平均函數(shù) 199
12.2.5 SUM()求和函數(shù) 200
12.3 MySQL GROUP BY分組 201
12.3.1 準備工作 201
12.3.2 GROUP BY說明 202
12.3.3 GROUP BY舉例 202
12.4 MySQL HAVING分組統(tǒng)計結(jié)果的篩選 204
12.4.1 MySQL HAVING說明 204
12.4.2 MySQL HAVING示例 205
第 13章 MySQL的多表聯(lián)合操作 206
13.1 MySQL多表操作基礎(chǔ)部分 206
13.1.1 數(shù)據(jù)庫的約束 206
13.1.2 多表查詢使用場景 208
13.1.3 一對一、一對多表關(guān)系分析 211
13.1.4 多對多表關(guān)系分析 212
13.2 MySQL多表操作實例操作 212
13.2.1 笛卡兒積 212
13.2.2 內(nèi)部連接操作 215
13.2.3 左外連接操作 217
13.2.4 右外連接操作 218
13.2.5 自連接操作 220
13.2.6 多表實例操作 220
第 14章 MySQL工作機制 229
14.1 MySQL多線程分析 229
14.1.1 調(diào)度方式實現(xiàn) 229
14.1.2 線程池實現(xiàn) 230
14.1.3 線程池優(yōu)化 233
14.1.4 線程模式控制 233
14.1.5 InnoDB存儲引擎的線程控制機制 234
14.2 MySQL的共享鎖與排他鎖 237
14.3 MySQL的表級鎖、頁級鎖與行級鎖 241
14.3.1 MySQL的表級鎖、頁級鎖與行級鎖的簡要介紹 241
14.3.2 MySQL的表級鎖、頁級鎖與行級鎖總結(jié) 245
14.4 MySQL存儲引擎和事務(wù) 245
14.5 MySQL的事務(wù)處理 246
14.5.1 MySQL事務(wù)的ACID 246
14.5.2 MySQL的COMMIT與ROLLBACK 247
14.5.3 MySQL的事務(wù)保存點SAVEPOINT 250
14.5.4 MySQL接受用戶請求、SQL語句執(zhí)行過程 257
第 15章 MySQL存儲引擎 258
15.1 MySQL數(shù)據(jù)庫引擎介紹 258
15.2 MySQL存儲引擎的比較 262
15.3 MySQL數(shù)據(jù)文件存放位置 263
15.4 MySQL數(shù)據(jù)庫引擎更換 264
15.5 MySQL數(shù)據(jù)庫引擎添加與拔出 265
15.6 MySQL數(shù)據(jù)庫引擎的應(yīng)用場景 265
15.6.1 選擇合適的MySQL存儲引擎 265
15.6.2 MySQL存儲引擎應(yīng)用場景 267
第 16章 MySQL視圖、存儲程序 269
16.1 MySQL視圖 269
16.1.1 為什么使用視圖 269
16.1.2 MySQL創(chuàng)建視圖 270
16.1.3 MySQL查看視圖 274
16.1.4 MySQL刪除視圖 275
16.1.5 MySQL修改視圖 275
16.2 MySQL存儲過程/存儲函數(shù) 275
16.2.1 MySQL變量的定義 275
16.2.2 MySQL SET與DECLARE聲明變量 279
16.2.3 MySQL預(yù)處理語句 282
16.2.4 MySQL存儲過程的概念詳解 286
16.2.5 MySQL結(jié)束符的設(shè)置 292
16.2.6 MySQL存儲過程的BEGIN ... END 293
16.2.7 MySQL IF語句 293
16.2.8 MySQL CASE語句 296
16.2.9 MySQL WHILE語句 300
16.2.10 MySQL LOOP語句 301
16.2.11 MySQL REPEAT語句 303
16.2.12 MySQL ITERATE語句 304
16.2.13 MySQL存儲過程BEGIN...END嵌套 305
16.2.14 MySQL SELECT...INTO語句 306
16.2.15 MySQL存儲函數(shù) 307
16.3 MySQL觸發(fā)器 312
16.3.1 MySQL觸發(fā)器的概念 312
16.3.2 MySQL觸發(fā)器的作用 312
16.3.3 MySQL觸發(fā)器的優(yōu)點 313
16.3.4 MySQL觸發(fā)器的創(chuàng)建 313
16.3.5 MySQL觸發(fā)器的查看與刪除 315
16.3.6 MySQL觸發(fā)器的執(zhí)行順序 315
16.3.7 MySQL觸發(fā)器實例 316
第 17章 MySQL備份與恢復(fù) 324
17.1 MySQL數(shù)據(jù)庫備份的多種操作手段 324
17.1.1 數(shù)據(jù)庫備份的重要性 324
17.1.2 mysqldump常用命令 324
17.1.3 mysqldump備份所有數(shù)據(jù)庫 328
17.1.4 mysqldump備份多個數(shù)據(jù)庫 329
17.1.5 MySQL命令恢復(fù)mysqldump備份的數(shù)據(jù)庫 330
17.2 MySQL BINLOG日志管理 331
17.2.1 MySQL BINLOG日志詳解 331
17.2.2 MySQL增量備份BINLOG日志 345
第 18章 全解MySQL性能優(yōu)化 347
18.1 MySQL數(shù)據(jù)庫設(shè)計良好架構(gòu)的必要性 347
18.1.1 應(yīng)用需求數(shù)據(jù)架構(gòu)的概念 347
18.1.2 MySQL常見數(shù)據(jù)庫服務(wù)器配置架構(gòu) 348
18.1.3 MySQL數(shù)據(jù)庫服務(wù)器經(jīng)典配置架構(gòu) 349
18.2 MySQL字段類型的選擇 350
18.3 MySQL數(shù)據(jù)庫索引 351
18.3.1 MySQL索引的概念 351
18.3.2 MySQL索引的優(yōu)缺點 351
18.3.3 MySQL索引的類型 353
18.3.4 MySQL索引的優(yōu)化 355
18.4 MySQL查詢優(yōu)化 356
18.4.1 MySQL查詢優(yōu)化應(yīng)注意的問題 356
18.4.2 MySQL EXPLAN詳解 359
18.4.3 MySQL多表查詢優(yōu)化 368
18.4.4 MySQL子查詢分析 373
18.4.5 MySQL JOIN語句優(yōu)化分析 377
18.4.6 MySQL數(shù)據(jù)導(dǎo)入優(yōu)化 378
18.4.7 MySQL INSERT性能提高 379
18.4.8 MySQL GROUP BY分組優(yōu)化 381
18.4.9 MySQL ORDER BY索引優(yōu)化 385
18.4.10 MySQL OR索引分析 387
18.4.11 MySQL STATUS獲得MySQL狀態(tài) 390
18.4.12 MySQL慢查詢SLOW 404
18.4.13 合理使用MySQL鎖機制 407
18.4.14 MySQL優(yōu)先級 411
18.4.15 MySQL MyISAM索引鍵緩存 413
18.4.16 MySQL查詢緩存工作過程 417
18.4.17 MySQL查看查詢緩存 420
18.4.18 MySQL查詢緩存開啟 421
18.4.19 MySQL優(yōu)化MySQL連接數(shù) 427
18.4.20 MySQL數(shù)據(jù)庫損壞的修復(fù) 431