《MySQL 8 DBA基礎教程》是2020年清華大學出版社出版的圖書,作者是孫澤軍 、劉華貞。
基本介紹
- 中文名:MySQL 8 DBA基礎教程
- 作者:孫澤軍、劉華貞
- 出版時間:2020年6月1日
- 出版社:清華大學出版社
- ISBN:9787302553540
- 定價:128 元
- 印次:1-1
內容簡介,圖書目錄,
內容簡介
本書以MySQL 8版本為基礎,將最新技術穿插在各種資料庫基礎功能上,基本覆蓋了所有資料庫使用技術和場景,同時結合當下流行的Java開發,配合實例演示MySQL的整體使用。本書附帶作者為本書錄製的全程多媒體語音教學視頻及所涉及的SQL原始碼。 本書分為3篇20章。第一篇介紹MySQL 8的基礎知識,包括MySQL的安裝與配置、資料庫的操作、數據表的操作、MySQL的資料庫操作、MySQL的數據類型、MySQL的運算符、MySQL的單表、多表查詢、索引、視圖、存儲過程和函式、觸發器、事務和鎖等內容;第二篇介紹MySQL 8的高級特性,如用戶安全管理、資料庫的備份和恢復、日誌管理等;第三篇學習MySQL 8實戰開發相關的內容。
圖書目錄
第一篇 MySQL基礎
第1章 資料庫與MySQL 3
1.1 認識資料庫 3
1.1.1 我們為什麼要學習資料庫 3
1.1.2 資料庫技術經歷的階段 4
1.1.3 資料庫管理系統提供的功能 5
1.2 當前流行的資料庫 6
1.2.1 Oracle 7
1.2.2 SQL Server 7
1.2.3 IBM的DB2 7
1.2.4 MySQL 7
1.2.5 PostgreSQL 7
1.3 資料庫管理系統的基本組成 8
1.3.1 資料庫 8
1.3.2 數據表 8
1.3.3 資料庫開發語言SQL 9
1.4 認識MySQL資料庫 10
1.4.1 MySQL與開源文化 10
1.4.2 MySQL的發展歷史 10
1.4.3 使用MySQL的優勢 11
1.4.4 MySQL集群 12
1.5 MySQL 8的新特性 14
1.5.1 更簡便的NoSQL支持 14
1.5.2 更好的索引 15
1.5.3 更完善的JSON支持 15
1.5.4 安全和賬戶管理 15
1.5.5 InnoDB的變化 15
1.5.6 數據字典 15
1.5.7 原子數據定義語句 15
1.5.8 資源管理 16
1.5.9 字元集支持 16
1.5.10 最佳化器增強 16
1.5.11 通用表表達式 16
1.5.12 視窗函式 17
1.5.13 正則表達式支持 17
1.5.14 內部臨時表 17
1.5.15 日誌記錄 18
1.5.16 備份鎖 18
1.5.17 增強的MySQL複製 18
1.6 經典習題與面試題 18
1.7 本章小結 19
第2章 MySQL的安裝與配置 20
2.1 在Windows平台下安裝與配置MySQL 20
2.1.1 安裝MySQL 8 20
2.1.2 配置MySQL 8 24
2.1.3 啟動MySQL服務 29
2.1.4 關閉MySQL服務 31
2.1.5 配置Path變數 32
2.1.6 登錄MySQL資料庫 33
2.2 在Linux平台下安裝與配置MySQL 34
2.2.1 安裝和配置MySQL 8 34
2.2.2 啟動MySQL服務 38
2.2.3 登錄MySQL資料庫 40
2.3 在Mac OS X平台下安裝與配置MySQL 40
2.3.1 安裝MySQL 8 40
2.3.2 啟動MySQL 8 43
2.3.3 配置和登錄MySQL 8 44
2.4 MySQL常用圖形管理工具 45
2.4.1 MySQL官方客戶端MySQL-Workbench 45
2.4.2 SQLyog圖形管理工具 49
2.4.3 Navicat圖形管理工具 61
2.5 使用免安裝的MySQL軟體 65
2.5.1 在Windows平台使用免安裝的MySQL 8.0 65
2.5.2 在Linux平台使用免安裝的MySQL 8.0 68
2.5.3 在Mac OS X平台使用免安裝的MySQL 8.0 71
2.6 MySQL安裝中的常見問題 73
2.7 綜合示例—MySQL的安裝 73
2.8 經典習題與面試題 74
2.9 本章小結 75
第3章 資料庫操作 76
3.1 在圖形化界面運算元據庫 76
3.1.1 創建資料庫 76
3.1.2 刪除資料庫 78
3.2 在命令行界面運算元據庫 78
3.2.1 創建資料庫 78
3.2.2 查看資料庫 79
3.2.3 選擇資料庫 79
3.2.4 刪除資料庫 79
3.3 什麼是存儲引擎 80
3.3.1 MySQL支持的存儲引擎 81
3.3.2 InnoDB存儲引擎 83
3.3.3 MyISAM存儲引擎 83
3.3.4 MEMORY存儲引擎 84
3.3.5 選擇存儲引擎 84
3.4 綜合示例—資料庫的創建和刪除 85
3.5 經典習題與面試題 86
3.6 本章小結 87
第4章 表 操 作 88
4.1 數據表的設計理念 88
4.2 創建表 90
4.2.1 創建表的語法形式 90
4.2.2 通過SQLyog創建表 92
4.3 查看錶結構 94
4.3.1 DESCRIBE語句查看錶定義 94
4.3.2 SHOW CREATE TABLE語句查看錶詳細定義 95
4.3.3 通過SQLyog查看錶 96
4.4 刪除表 97
4.4.1 刪除表的語法形式 97
4.4.2 通過SQLyog刪除表 98
4.5 修改表 100
4.5.1 修改表名—使用RENAME 100
4.5.2 修改表名—通過SQLyog 101
4.5.3 增加欄位—在表的最後一個位置增加 102
4.5.4 增加欄位—在表的第一個位置增加 103
4.5.5 增加欄位—在表的指定欄位之後增加 105
4.5.6 增加欄位—通過SQLyog 106
4.5.7 刪除欄位—使用DROP 107
4.5.8 刪除欄位—通過SQLyog 108
4.5.9 修改欄位—修改數據類型 109
4.5.10 修改欄位—修改欄位的名字 110
4.5.11 修改欄位—同時修改欄位的名字和類型 111
4.5.12 修改欄位—修改欄位的順序 112
4.5.13 修改欄位—通過SQLyog 113
4.6 操作表的約束 116
4.6.1 設定表欄位的非空約束 116
4.6.2 設定表欄位的默認值 118
4.6.3 設定表欄位唯一約束(UNIQUE,UK) 119
4.6.4 設定表欄位的主鍵約束 120
4.6.5 設定表欄位值自動增加 123
4.6.6 設定表欄位的外鍵約束 125
4.7 綜合示例—創建一個學籍資料庫和學生信息表 127
4.8 經典習題與面試題 130
4.9 本章小結 131
第5章 MySQL的數據操作 132
5.1 插入數據記錄 132
5.1.1 插入完整數據記錄 132
5.1.2 插入數據記錄的一部分 133
5.1.3 插入多條完整數據記錄 135
5.1.4 插入多條部分數據記錄 137
5.1.5 插入查詢結果 138
5.1.6 通過SQLyog來插入數據記錄 140
5.2 更新數據記錄 143
5.2.1 更新特定數據記錄 143
5.2.2 更新所有數據記錄 144
5.2.3 通過SQLyog來更新數據記錄 146
5.3 刪除數據記錄 148
5.3.1 刪除特定數據記錄 148
5.3.2 刪除所有數據記錄 150
5.3.3 通過SQLyog刪除數據記錄 152
5.4 綜合示例—學生表的數據操作 154
5.5 經典習題與面試題 157
5.6 本章小結 158
第6章 MySQL的數據類型 159
6.1 整數類型 159
6.2 浮點數類型和定點數類型 160
6.3 日期與時間類型 161
6.4 字元串類型 162
6.4.1 CHAR類型和VARCHAR類型 162
6.4.2 TEXT類型 163
6.4.3 ENUM類型 164
6.4.4 SET類型 164
6.5 二進制類型 164
6.5.1 BINARY和VARBINARY類型 165
6.5.2 BIT類型 165
6.5.3 BLOB類型 165
6.6 如何選擇數據類型 166
6.7 經典習題與面試題 167
6.8 本章小結 168
第7章 MySQL運算符 169
7.1 運算符簡介 169
7.2 算術運算符 170
7.3 比較運算符 174
7.3.1 常用的比較運算符 174
7.3.2 特殊功能的比較運算符 176
7.4 邏輯運算符 180
7.5 位運算符 182
7.6 運算符的優先權 185
7.7 綜合示例—運算符的使用 185
7.8 經典習題與面試題 188
7.9 本章小結 189
第8章 單表查詢 190
8.1 基本數據記錄查詢 190
8.1.1 查詢所有欄位數據 190
8.1.2 查詢指定欄位數據 193
8.1.3 避免重複數據查詢 194
8.1.4 實現數學四則運算數據查詢 195
8.1.5 設定顯示格式數據查詢 196
8.2 條件數據記錄查詢 198
8.2.1 查詢指定記錄 199
8.2.2 帶IN關鍵字的查詢 201
8.2.3 帶BETWEEN AND關鍵字的查詢 205
8.2.4 帶LIKE的模糊查詢 207
8.2.5 帶IS NULL的查詢 211
8.2.6 帶AND的多條件查詢 213
8.2.7 帶OR的多條件查詢 215
8.2.8 對查詢結果進行排序 217
8.3 統計函式和分組查詢 219
8.3.1 MySQL支持的統計函式 220
8.3.2 統計函式針對無數據記錄的表 225
8.3.3 簡單分組查詢 226
8.3.4 實現統計功能分組查詢 229
8.3.5 實現多個欄位分組查詢 231
8.3.6 實現HAVING子句限定分組查詢 232
8.4 用LIMIT限制數據記錄查詢數量 234
8.4.1 不指定初始位置 234
8.4.2 指定初始位置 236
8.5 使用正則表達式查詢 238
8.5.1 查詢以特定字元或字元串開頭的記錄 239
8.5.2 查詢以特定字元或字元串結尾的記錄 240
8.5.3 用符號“.”來替代字元串中的任意一個字元 241
8.5.4 使用“*”和“+”來匹配多個字元 242
8.5.5 匹配指定字元串 243
8.5.6 匹配指定字元串中的任意一個 245
8.5.7 匹配指定字元以外的字元 247
8.5.8 使用{n,}或者{n,m}來指定字元串連續出現的次數 248
8.6 綜合示例—查詢學生成績 250
8.7 經典習題與面試題 257
8.8 本章小結 258
第9章 多表查詢 259
9.1 關係數據操作 259
9.1.1 並 259
9.1.2 笛卡爾積 260
9.2 內連線查詢 261
9.2.1 自連線 262
9.2.2 等值連線 264
9.2.3 不等連線 268
9.3 外連線查詢 270
9.3.1 左外連線 271
9.3.2 右外連線 272
9.4 複合條件連線查詢 274
9.5 合併查詢數據記錄 275
9.5.1 帶有關鍵字UNION的並操作 276
9.5.2 帶有關鍵字UNION ALL的並操作 279
9.6 子查詢 280
9.6.1 為什麼使用子查詢 280
9.6.2 帶比較運算符的子查詢 281
9.6.3 帶關鍵字IN的子查詢 286
9.6.4 帶關鍵字EXISTS的子查詢 287
9.6.5 帶關鍵字ANY的子查詢 290
9.6.6 帶關鍵字ALL的子查詢 294
9.7 綜合示例—查詢學生成績 296
9.8 經典習題與面試題 300
9.9 本章小結 301
第10章 索引 302
10.1 什麼是索引 302
10.1.1 索引的含義和特點 302
10.1.2 索引的分類 303
10.1.3 索引的設計原則 304
10.2 創建和查看索引 305
10.2.1 普通索引—創建表時直接創建 305
10.2.2 普通索引—在已經存在的表上創建 307
10.2.3 普通索引—通過ALTER TABLE語句創建 309
10.2.4 唯一索引—創建表時直接創建 310
10.2.5 唯一索引—在已經存在的表上創建 311
10.2.6 唯一索引—通過ALTER TABLE語句創建 312
10.2.7 全文索引—創建表時直接創建 314
10.2.8 全文索引—在已經存在的表上創建 315
10.2.9 全文索引—通過ALTER TABLE語句創建 317
10.2.10 多列索引—創建表時自動創建 318
10.2.11 多列索引—在已經存在的表上創建 319
10.2.12 多列索引—通過ALTER TABLE語句創建 321
10.2.13 隱藏索引—創建表時自動創建 322
10.2.14 隱藏索引—在已經存在的表上創建 323
10.2.15 隱藏索引—通過ALTER TABLE語句創建 324
10.2.16 降序索引—創建表時自動創建 325
10.2.17 降序索引—在已經存在的表上創建 326
10.2.18 降序索引—通過ALTER TABLE語句創建 327
10.2.19 通過SQLyog創建和修改索引 329
10.3 刪除索引 333
10.3.1 刪除索引的語法形式 334
10.3.2 通過SQLyog刪除索引 335
10.4 綜合示例—創建索引 336
10.5 經典習題與面試題 339
10.6 本章小結 340
第11章 視圖 341
11.1 什麼時候使用視圖 341
11.2 創建視圖 342
11.2.1 創建視圖的語法形式 342
11.2.2 在單表上創建視圖 343
11.2.3 在多表上創建視圖 346
11.2.4 通過SQLyog創建視圖 348
11.3 查看視圖 350
11.3.1 使用DESCRIBE | DESC語句查看視圖基本信息 350
11.3.2 使用SHOW TABLES語句查看視圖基本信息 351
11.3.3 使用SHOW TABLE STATUS語句查看視圖基本信息 352
11.3.4 使用SHOW CREATE VIEW語句查看視圖詳細信息 354
11.3.5 在views表中查看視圖詳細信息 355
11.3.6 使用SQLyog查看視圖信息 356
11.4 修改視圖 358
11.4.1 使用CREATE OR REPLACE VIEW語句修改視圖 358
11.4.2 使用ALTER語句修改視圖 360
11.4.3 通過SQLyog修改視圖 361
11.5 更新視圖 363
11.5.1 使用SQL語句更新視圖 364
11.5.2 更新基本表後視圖自動更新 365
11.5.3 刪除視圖中的數據 367
11.5.4 不能更新的視圖 369
11.6 刪除視圖 372
11.6.1 刪除視圖的語法形式 372
11.6.2 通過SQLyog刪除視圖 373
11.7 綜合示例—視圖套用 374
11.8 經典習題與面試題 378
11.9 本章小結 379
第12章 存儲過程和函式 380
12.1 創建存儲過程和函式 380
12.1.1 創建存儲過程 381
12.1.2 創建存儲函式 384
12.1.3 變數的使用 385
12.1.4 定義條件和處理程式 386
12.1.5 游標的使用 388
12.1.6 流程控制的使用 390
12.1.7 通過SQLyog創建存儲過程 393
12.2 調用存儲過程和函式 398
12.2.1 調用存儲過程 398
12.2.2 調用存儲函式 399
12.3 查看存儲過程和函式 400
12.3.1 使用SHOW STATUS語句查看存儲過程和函式的狀態 400
12.3.2 使用SHOW CREATE語句查看存儲過程和函式的定義 401
12.3.3 從information_schema.Routine表中查看存儲過程和函式的信息 402
12.4 修改存儲過程和函式 404
12.4.1 修改存儲過程和函式的語法 404
12.4.2 使用SQLyog修改存儲過程和函式 406
12.5 刪除存儲過程和函式 409
12.5.1 刪除存儲過程和函式的語法 409
12.5.2 使用SQLyog刪除存儲過程和函式 410
12.6 綜合示例——創建存儲過程和函式 413
12.7 經典習題與面試題 415
12.8 本章小結 417
第13章 觸 發 器 418
13.1 什麼時候使用觸發器 418
13.2 創建觸發器 419
13.2.1 創建有一條執行語句的觸發器 419
13.2.2 創建包含多條執行語句的觸發器 421
13.2.3 通過SQLyog創建觸發器 423
13.3 查看觸發器 425
13.3.1 通過SHOW TRIGGERS語句查看觸發器 425
13.3.2 通過查看系統表triggers實現查看觸發器 426
13.3.3 通過SQLyog查看觸發器 428
13.4 刪除觸發器 429
13.4.1 通過DROP TRIGGER語句刪除觸發器 429
13.4.2 通過工具來刪除觸發器 430
13.5 綜合示例—創建並使用觸發器 432
13.6 經典習題與面試題 436
13.7 本章小結 437
第14章 事務和鎖 438
14.1 事務概述 438
14.2 MySQL事務控制語句 439
14.3 MySQL事務隔離級別 442
14.3.1 READ-UNCOMMITED(讀取未提交內容) 443
14.3.2 READ-COMMITED(讀取提交內容) 444
14.3.3 REPEATABLE-READ(可重讀) 444
14.3.4 SERIALIZABLE(可串列化) 446
14.4 InnoDB鎖機制 446
14.4.1 鎖的類型 447
14.4.2 鎖粒度 447
14.5 本章小結 450
第二篇 MySQL高級套用
第15章 用戶安全管理 453
15.1 許可權表 453
15.1.1 user表 453
15.1.2 db表 455
15.1.3 tables_priv表和columns_priv表 456
15.1.4 procs_priv表 457
15.2 賬戶管理 457
15.2.1 登錄和退出MySQL伺服器 457
15.2.2 新建普通用戶 459
15.2.3 刪除普通用戶 460
15.2.4 root用戶修改自己的密碼 461
15.2.5 root用戶修改普通用戶的密碼 464
15.2.6 普通用戶修改密碼 465
15.2.7 root用戶密碼丟失的解決辦法 467
15.3 許可權管理 472
15.3.1 MySQL的各種許可權 472
15.3.2 授權 474
15.3.3 查看許可權 476
15.3.4 收回許可權 478
15.4 訪問控制 480
15.4.1 連線核實階段 480
15.4.2 請求核實階段 480
15.5 綜合示例——綜合管理用戶許可權 481
15.6 經典習題與面試題 484
15.7 本章小結 486
第16章 資料庫備份與恢復 487
16.1 數據備份 487
16.1.1 使用MySQLdump命令備份一個資料庫 487
16.1.2 使用MySQLdump命令備份一個資料庫的某幾張表 491
16.1.3 使用MySQLdump命令備份多個資料庫 493
16.1.4 直接複製整個資料庫目錄 495
16.2 數據恢復 496
16.2.1 使用MySQL命令恢復 496
16.2.2 直接複製到資料庫目錄 497
16.3 資料庫遷移 498
16.3.1 相同版本的MySQL資料庫之間的遷移 498
16.3.2 不同版本的MySQL資料庫之間的遷移 498
16.3.3 不同資料庫之間的遷移 499
16.4 表的導出和導入 499
16.4.1 使用SELECT…INTO OUTFILE導出文本檔案 500
16.4.2 使用MySQLdump命令導出文本檔案 502
16.4.3 使用MySQL命令導出文本檔案 508
16.4.4 使用LOAD DATA INFILE方式導入文本檔案 511
16.4.5 使用MySQLimport方式導入文本檔案 515
16.5 綜合示例—數據的備份與恢復 517
16.6 經典習題與面試題 523
16.7 本章小結 524
第17章 日誌管理 525
17.1 MySQL軟體所支持的日誌 525
17.2 操作二進制日誌 526
17.2.1 啟動二進制日誌 526
17.2.2 查看二進制日誌 528
17.2.3 使用二進制日誌恢複數據庫 529
17.2.4 暫停二進制日誌 530
17.2.5 刪除二進制日誌 530
17.3 操作錯誤日誌 534
17.3.1 啟動錯誤日誌 535
17.3.2 查看錯誤日誌 535
17.3.3 刪除錯誤日誌 536
17.4 通用查詢日誌 537
17.4.1 啟動通用查詢日誌 537
17.4.2 查看通用查詢日誌 538
17.4.3 停止通用查詢日誌 539
17.4.4 刪除通用查詢日誌 540
17.5 慢查詢日誌 541
17.5.1 啟動慢查詢日誌 541
17.5.2 查看和分析慢查詢日誌 544
17.5.3 停止慢查詢日誌 545
17.5.4 刪除慢查詢日誌 547
17.6 綜合示例——MySQL日誌的綜合管理 548
17.7 經典習題與面試題 555
17.8 本章小結 556
第三篇 MySQL實戰
第18章 Java操作MySQL資料庫 559
18.1 Java連線MySQL資料庫 559
18.1.1 JDBC簡介 559
18.1.2 下載JDBC驅動MySQL Connector/J 561
18.1.3 在Windows下安裝MySQL Connector/J驅動 561
18.1.4 在Linux和Mac OS X下安裝MySQL Connector/J驅動 562
18.1.5 在IntelliJ IDEA環境下安裝MySQL Connector/J驅動 562
18.1.6 Java連線MySQL資料庫 564
18.2 Java操作MySQL資料庫 565
18.2.1 使用Statement執行SQL語句—executeQuery()查詢 565
18.2.2 使用Statement執行SQL語句—execute()查詢 567
18.2.3 使用Statement執行SQL語句—executeUpdate()插入數據 568
18.2.4 使用Statement執行SQL語句—executeUpdate()修改數據 569
18.2.5 使用Statement執行SQL語句—executeUpdate()刪除數據 570
18.2.6 使用PreparedStatement執行SQL語句—executeQuery()查詢 571
18.2.7 使用PreparedStatement執行SQL語句—execute()查詢 572
18.2.8 使用PreparedStatement執行SQL語句—executeUpdate()插入數據 573
18.2.9 使用PreparedStatement執行SQL語句—executeUpdate()修改數據 575
18.2.10 使用PreparedStatement執行SQL語句—executeUpdate()刪除數據 576
18.3 Java備份和恢復MySQL資料庫 577
18.3.1 使用Java備份MySQL資料庫 577
18.3.2 使用Java恢復MySQL資料庫 578
18.4 綜合示例—人力資源管理系統 579
18.5 本章小結 592
第19章 網上課堂系統資料庫設計 593
19.1 系統概述 593
19.2 系統功能 593
19.3 資料庫設計和實現 594
19.3.1 設計表 594
19.3.2 設計索引 602
19.3.3 設計視圖 604
19.3.4 設計觸發器 604
19.4 本章小結 606
第20章 論壇管理系統資料庫設計 607
20.1 系統概述 607
20.2 系統功能 608
20.3 資料庫設計和實現 608
20.3.1 設計表 609
20.3.2 設計索引 613
20.3.3 設計視圖 614
20.3.4 設計觸發器 615
20.4 本章小結 617