MySQL數據庫任務驅動式教程(第4版)(微課版)(AIGC拓展版)
石坤泉 湯雙霞
商品描述
本書對照《全國計算機等級考試二級MySQL數據庫程序設計考試大綱(2023年版)》,結合Oracle認證考試(SQL認證)以及1+X職業技能(Web前端開發)等級考試內容編寫而成。本書采用MySQL 8.0,介紹MySQL 8.0的新特性、新功能,主要講解數據庫設計的基本原理和基本方法、MySQL基礎及其應用。全書共11個項目(26個任務),包括認識數據庫,MySQL實訓環境配置,MySQL字符集與數據類型,創建與管理數據庫、表和索引,數據查詢、數據處理與視圖,創建和使用程序,數據庫安全與性能優化,PHP基礎,訪問MySQL數據庫,phpMyAdmin操作數據庫以及MySQL集群架構搭建實例。
本書可以作為高職高專院校數據庫相關課程的教材,也可以作為全國計算機等級考試二級MySQL數據庫程序設計考試、Oracle認證考試(SQL認證)以及1+X職業技能(Web前端開發)等級考試的參考書,還可以作為數據庫開發人員的實用參考書或者職業培訓教材。
作者簡介
石坤泉,男,教授,研究方向:數據庫技術、信息安全和圖像處理,廣東省南粵優秀教師,廣東省高等學校公共計算機課教指委委員,廣東省計算機學會競賽委員會委員,全國高等院校計算機基礎教育研究會高職計算機與電子商務專委會副主任委員,廣東軒轅網絡科技有限公司數據庫技術專家、系統集成顧問,全國信息技術應用水平大賽優秀指導老師。主持和參與省、市科研項目十余項,發表論文30多篇(北大中文核心、CSSCI以及SCI/EI檢索等十余篇);獲實用新型專利和軟件著作權授權十余項;主編教材20余部,國家職業教育規劃教材3部,教材累計發行40多萬冊,專著2部。
目錄大綱
目錄 CONTENTS
基礎篇
項目一 認識數據庫
任務1
認識數據庫 2
任務背景 2
任務目標 2
任務要求 3
任務分解 3
1.1 了解數據庫的基本應用 3
1.2 了解數據庫的幾個概念 4
1.3 認識關系數據庫 4
1.4 關系數據庫設計 6
1.4.1 認識實體、屬性、聯系 6
1.4.2 將E-R圖轉換為關系模式 7
1.4.3 關系模式的規範化 8
1.5 數據庫應用系統 10
1.5.1 認識C/S模式數據庫應用
系統 10
1.5.2 認識B/S模式數據庫應用
系統 11
1.6 認識一個真實的關系數據庫 12
【項目實踐】 13
【習題】 14
任務2
認識MySQL 15
任務背景 15
任務目標 15
任務要求 15
任務分解 16
2.1 認識SQL 16
2.1.1 SQL的特點 16
2.1.2 SQL的類型 16
2.2 MySQL概述 17
2.3 認識MySQL 8.0 17
2.4 MySQL的管理工具 18
2.5 初識MySQL數據類型 20
2.6 初識MySQL的基本語句 20
【習題】 20
項目二 MySQL實訓環境
配置
任務3
Windows操作系統中
MySQL的安裝與配置 22
任務背景 22
任務目標 22
任務要求 23
任務分解 23
3.1 MySQL服務器的安裝與
配置 23
3.1.1 MySQL服務器的安裝 23
3.1.2 MySQL服務器的配置 26
3.2 更改MySQL的配置 30
3.3 連接MySQL本地服務 32
3.3.1 服務的啟動和關閉 32
3.3.2 使用MySQL客戶端連接MySQL
服務器 32
3.3.3 使用DOS命令連接MySQL
服務器 33
3.4 遠程訪問MySQL服務器 33
【項目實踐】 35
【習題】 35
任務4
安裝與配置WampServer
3.3 36
任務背景 36
任務目標 36
任務要求 36
任務分解 36
4.1 認識WampServer 3.3 36
4.2 安裝WampServer 3.3 37
4.3 配置WampServer 3.3 38
4.3.1 設置用戶登錄密碼 38
4.3.2 PHP文件目錄 39
【項目實踐】 39
【習題】 39
項目三 MySQL字符集與數據類型
任務5
認識和設置MySQL
字符集 41
任務背景 41
任務目標 41
任務分解 42
5.1 認識字符集和校對原則 42
5.2 MySQL 8.0支持的字符集和
校對原則 42
5.3 確定字符集和校對原則 43
5.4 使用MySQL字符集時的
建議 45
【項目實踐】 45
【習題】 45
任務6
MySQL數據類型 46
任務背景 46
任務目標 46
任務要求 46
任務分解 47
6.1 整數類型 47
6.2 浮點數類型和定點數類型 47
6.3 CHAR類型和VARCHAR
類型 47
6.4 TEXT類型和BLOB類型 48
6.5 BINARY類型和VARBINARY
類型 49
6.6 日期和時間類型 49
6.7 ENUM類型和SET類型 49
6.8 如何選擇數據類型 50
6.9 數據類型的附加屬性 50
【項目實踐】 51
【習題】 51
項目四 創建與管理數據庫、表和索引
任務7
數據庫和表 52
任務背景 52
任務目標 52
任務要求 53
任務分解 53
7.1 創建與管理數據庫 53
7.1.1 創建數據庫 53
7.1.2 查看數據庫 53
7.1.3 修改數據庫 54
7.1.4 刪除數據庫 54
7.2 創建與管理表 54
7.2.1 創建表 54
7.2.2 查看表 58
7.2.3 修改表 59
7.2.4 復制表 59
7.2.5 刪除表 60
7.3 數據操作 60
7.3.1 插入數據 60
7.3.2 修改數據 63
7.3.3 刪除數據 63
7.4 JSON數據類型的使用方法 64
7.5 計算字段的使用方法 64
【項目實踐】 65
【習題】 67
任務8
創建和管理索引 69
任務背景 69
任務目標 69
任務要求 69
任務分解 70
8.1 認識索引 70
8.1.1 索引的分類 70
8.1.2 索引的設計原則 71
8.2 索引的創建 71
8.2.1 創建表時創建索引 71
8.2.2 用CREATE INDEX語句創建
索引 72
8.2.3 用ALTER TABLE語句創建
索引 73
8.3 索引的查看 74
8.4 索引的刪除 74
8.4.1 用DROP INDEX語句刪除
索引 74
8.4.2 用ALTER TABLE語句刪除
索引 75
【項目實踐】 75
【習題】 76
任務9
數據約束和參照完整性 77
任務背景 77
任務目標 77
任務要求 77
任務分解 78
9.1 PRIMARY KEY約束 78
9.1.1 理解PRIMARY KEY約束 78
9.1.2 設置主鍵的兩種方式 78
9.1.3 復合主鍵 78
9.1.4 修改表的主鍵 79
9.2 UNIQUE約束 79
9.2.1 理解UNIQUE約束 79
9.2.2 創建UNIQUE約束 79
9.2.3 修改UNIQUE約束 80
9.3 FOREIGN KEY約束 80
9.3.1 理解FOREIGN KEY約束 80
9.3.2 在創建表時創建外鍵 81
9.3.3 對已有的表添加外鍵 81
9.3.4 創建級聯更新、級聯刪除 81
9.3.5 查看外鍵和刪除外鍵 82
9.4 CHECK約束 82
9.4.1 理解CHECK約束 82
9.4.2 創建CHECK約束 82
【項目實踐】 83
【習題】 83
項目五 數據查詢、數據處理與視圖
任務10
數據庫的查詢 84
任務背景 84
任務目標 84
任務要求 85
任務分解 85
10.1 了解SELECT語法結構 85
10.2 認識基本子句 86
10.2.1 認識SELECT子句 86
10.2.2 認識FROM子句 87
10.2.3 認識WHERE子句 88
10.2.4 認識GROUP BY子句 91
10.2.5 認識ORDER BY子句 92
10.2.6 認識HAVING子句 93
10.2.7 認識LIMIT子句 94
10.3 使用聚合函數進行統計查詢 95
10.4 多表連接查詢 96
10.4.1 全連接 96
10.4.2 JOIN連接 97
10.5 嵌套查詢 99
10.5.1 嵌套在WHERE子句中 99
10.5.2 嵌套在SELECT子句中 100
10.5.3 嵌套在FROM子句中 101
10.5.4 IN子查詢 101
10.5.5 比較子查詢 103
10.5.6 EXISTS子查詢 103
10.6 聯合查詢 104
【項目實踐】 105
【習題】 106
任務11
MySQL運算符和函數 107
任務背景 107
任務目標 107
任務要求 107
任務分解 108
11.1 認識和使用運算符 108
11.1.1 算術運算符 108
11.1.2 比較運算符 109
11.1.3 邏輯運算符 114
11.1.4 位運算符 116
11.1.5 運算符的優先級 116
11.2 認識和使用函數 117
11.2.1 數學函數 117
11.2.2 聚合函數 120
11.2.3 日期和時間函數 122
11.2.4 控制流判斷函數 127
11.2.5 字符串函數 128
11.2.6 系統信息函數 130
11.2.7 加密函數 131
11.2.8 格式化函數 131
11.3 使用JSON函數 131
11.4 使用窗口函數 132
【項目實踐】 134
【習題】 134
任務12
創建和使用視圖 135
任務背景 135
任務目標 135
任務要求 135
任務分解 136
12.1 認識視圖 136
12.2 視圖的特性 136
12.3 創建視圖 136
12.3.1 來自一張基本表 137
12.3.2 來自多張基本表 137
12.3.3 來自視圖 137
12.4 查看視圖 138
12.4.1 查看已創建的視圖 138
12.4.2 查看視圖的結構 139
12.4.3 查看視圖的定義 139
12.5 使用視圖 140
12.5.1 使用視圖進行查詢 140
12.5.2 使用視圖進行計算 140
12.5.3 使用視圖操作基本表數據 140
12.6 修改視圖 141
12.7 刪除視圖 142
【項目實踐】 142
【習題】 142
高級篇
項目六 創建和使用程序
任務13
創建和使用存儲過程 145
任務背景 145
任務目標 145
任務要求 146
任務分解 146
13.1 認識存儲過程 146
13.2 創建基本的存儲過程 146
13.2.1 DELIMITER命令 146
13.2.2 創建基本存儲過程 147
13.2.3 查看存儲過程 149
13.3 執行存儲過程 149
13.4 創建帶變量的存儲過程 151
13.4.1 局部變量聲明與賦值 151
13.4.2 創建使用局部變量的存儲
過程 152
13.5 創建帶有流程控制語句的存儲
過程 153
13.5.1 使用IF…THEN…ELSE
語句 153
13.5.2 使用CASE語句 154
13.6 在存儲過程中調用其他存儲
過程 155
13.7 修改存儲過程 155
13.8 查看存儲過程的定義 156
13.9 刪除存儲過程 156
【項目實踐】 157
【習題】 157
任務14
創建和使用存儲函數 158
任務背景 158
任務目標 158
任務要求 158
任務分解 159
14.1 認識存儲函數 159
14.2 創建存儲函數 159
14.2.1 創建基本的存儲函數 159
14.2.2 創建帶變量的存儲函數 160
14.3 調用存儲函數 160
14.3.1 使用SELECT關鍵字調用存儲
函數 160
14.3.2 在存儲函數中調用另外一個存儲
函數或者存儲過程 161
14.4 查看存儲函數 161
14.5 修改存儲函數 162
14.6 刪除存儲函數 162
【項目實踐】 163
【習題】 163
任務15
創建和使用觸發器 164
任務背景 164
任務目標 164
任務要求 164
任務分解 165
15.1 認識觸發器 165
15.2 創建觸發器 165
15.2.1 激發它表數據更新 165
15.2.2 激發自表數據更新 167
15.2.3 通過觸發器調用存儲過程 168
15.3 查看觸發器 169
15.4 刪除觸發器 169
【項目實踐】 170
【習題】 170
任務16
創建和使用事件 171
任務背景 171
任務目標 171
任務要求 171
任務分解 172
16.1 認識事件 172
16.2 創建事件 172
16.2.1 創建某個時刻發生的事件 173
16.2.2 創建在指定區間周期性發生的
事件 174
16.2.3 在事件中調用存儲過程或存儲
函數 175
16.3 查看事件 175
16.4 修改事件 176
16.5 刪除事件 176
【項目實踐】 176
【習題】 176
項目七 數據庫安全與性能優化
任務17
用戶與權限 177
任務背景 177
任務目標 178
任務要求 178
任務分解 178
17.1 創建用戶賬戶 178
17.1.1 MySQL的密碼驗證插件 178
17.1.2 用CREATE USER語句創建
用戶 179
17.1.3 修改用戶密碼 180
17.1.4 重命名用戶 181
17.1.5 刪除用戶 181
17.2 授予用戶權限 181
17.2.1 關於MySQL的權限 182
17.2.2 用GRANT語句授權 182
17.3 用REVOKE語句收回
權限 184
17.4 權限轉移 185
17.5 權限限制 185
17.6 密碼管理策略 185
17.6.1 過期時間管理 185
17.6.2 MySQL用戶密碼重用策略
設置 186
17.7 角色管理 186
17.7.1 創建角色並授予用戶角色
權限 187
17.7.2 檢查角色權限 187
17.7.3 撤銷角色或角色權限 187
17.7.4 刪除角色 188
17.7.5 角色和用戶的實際應用 188
【項目實踐】 188
【習題】 189
任務18
數據庫備份與恢復 190
任務背景 190
任務目標 190
任務要求 190
任務分解 191
18.1 用SELECT…INTO OUTFILE
語句備份表數據 191
18.2 用LOAD DATA INFILE語句
恢復表數據 191
18.3 用mysqldump備份與
恢復 192
18.3.1 進入mysqldump 192
18.3.2 備份與恢復表 192
18.3.3 備份與恢復庫 193
18.3.4 將表結構和數據分別備份 194
18.3.5 備份與恢復其他方面 195
18.4 用mysqlimport恢復表
數據 195
18.5 用SOURCE恢復表和
數據庫 195
18.6 用日誌備份 196
【項目實踐】 197
【習題】 197
任務19
數據庫性能優化 198
任務背景 198
任務目標 198
任務要求 199
任務分解 199
19.1 優化MySQL服務器 199
19.1.1 通過修改my.ini文件進行性能
優化 199
19.1.2 通過MySQL控制臺進行性能
優化 199
19.2 優化表結構設計和數據
操作 201
19.2.1 添加中間表 201
19.2.2 增加冗余字段 201
19.2.3 合理設置表的數據類型和
屬性 202
19.2.4 優化插入記錄的速度 202
19.2.5 對表進行分析、檢查、優化和
修復 203
19.3 優化查詢 205
19.3.1 查看SELECT語句的執行
效果 205
19.3.2 使用索引優化查詢 207
19.3.3 優化子查詢 212
19.3.4 優化慢查詢 212
19.4 優化性能的其他方面 213
19.5 數據庫的架構優化 214
19.6 配置文件優化 214
19.7 存儲與數據格式優化 215
【項目實踐】 216
【習題】 216
任務20
事務與鎖 217
任務背景 217
任務目標 217
任務要求 217
任務分解 218
20.1 MySQL事務的四大特性
(ACID) 218
20.2 MySQL事務隔離級別與
一致性 218
20.2.1 事務的隔離級別 218
20.2.2 數據一致性 221
20.2.3 事務提交與回滾SQL
語句 222
20.3 MySQL中的鎖機制 223
20.3.1 3種鎖方式與4種鎖模式 223
20.3.2 死鎖產生的必要條件 224
【習題】 225
應用篇
項目八 PHP基礎
任務21
初識與應用PHP 228
任務背景 228
任務目標 228
任務要求 229
任務分解 229
21.1 PHP技術基礎 229
21.1.1 PHP標記風格 229
21.1.2 在HTML代碼中嵌入PHP
代碼 230
21.1.3 使用PHP輸出HTML
標簽 230
21.1.4 在PHP代碼中調用JavaScript
腳本 230
21.2 PHP的數據類型 231
21.2.1 整型 231
21.2.2 浮點型 231
21.2.3 布爾型 231
21.2.4 字符串 232
21.3 PHP數據處理 232
21.3.1 PHP對數組的處理 232
21.3.2 PHP對字符串的處理 235
21.3.3 用PHP處理日期和時間 236
21.3.4 PHP中對URL、HTTP的
處理 236
21.3.5 PHP中的數學運算 237
21.4 PHP連接MySQL
數據庫 238
21.4.1 PHP程序連接到MySQL數據庫
的原理 239
21.4.2 PHP連接到MySQL
函數 239
21.5 PHP操作MySQL
數據庫 239
21.5.1 一次執行一條SQL語句 239
21.5.2 一次執行多條語句 240
21.5.3 處理查詢結果 240
21.5.4 關閉創建的對象 241
21.6 PHP備份與還原MySQL
數據庫 241
21.6.1 MySQL數據庫與表的
備份 241
21.6.2 MySQL數據庫與表的
還原 242
21.7 應用實踐:基於文本的簡易
留言板 242
【習題】 245
項目九 訪問MySQL
數據庫
任務22
Java訪問MySQL
數據庫 246
任務背景 246
任務目標 246
任務要求 247
任務分解 247
22.1 Java連接MySQL
數據庫 247
22.1.1 下載並安裝JDBC驅動MySQL
Connector/J 247
22.1.2 java.sql中的類和接口 247
22.1.3 連接MySQL數據庫 248
22.2 Java操作MySQL
數據庫 248
22.2.1 創建Statement對象 248
22.2.2 插入、更新或者刪除數據 249
22.2.3 使用SELECT語句查詢
數據 249
22.3 Java備份MySQL
數據庫 249
22.4 Java還原MySQL
數據庫 250
【項目實踐】 250
【習題】 250
任務23
C#訪問MySQL
數據庫 251
任務背景 251
任務目標 251
任務要求 251
任務分解 251
23.1 C#連接MySQL數據庫 251
23.1.1 下載並安裝Connector/Net
驅動程序 252
23.1.2 使用Connector/Net驅動
程序 253
23.1.3 連接MySQL數據庫 253
23.2 C#操作MySQL數據庫 253
23.2.1 創建MySqlCommand
對象 253
23.2.2 關閉創建的對象 254
23.3 C#備份與還原MySQL
數據庫 254
23.3.1 C#備份MySQL數據庫 254
23.3.2 C#還原MySQL數據庫 254
【項目實踐】 255
【習題】 255
任務24
Python訪問MySQL
數據庫 256
任務背景 256
任務目標 256
任務要求 256
任務分解 257
24.1 Python技術基礎 257
24.1.1 什麼是MySQLdb 257
24.1.2 安裝Python 257
24.1.3 安裝MySQLdb 258
24.2 Python數據類型 258
24.3 Python連接MySQL
數據庫 259
24.4 Python MySQL操作
數據庫 259
24.4.1 獲取操作遊標 259
24.4.2 操作庫 260
24.4.3 操作數據表 260
24.4.4 數據查詢 260
24.5 Python提交與回滾 260
【項目實踐】 261
【習題】 262
項目十 phpMyAdmin操作數據庫
任務25
使用phpMyAdmin操作
數據庫 263
任務背景 263
任務目標 263
任務要求 264
任務分解 264
25.1 創建與管理數據庫 264
25.2 創建與管理表 265
25.2.1 創建表 265
25.2.2 管理表 266
25.3 字符集設置 267
25.4 表數據操作 268
25.4.1 插入數據 268
25.4.2 導入數據 268
25.4.3 操作數據 269
25.5 索引與參照完整性約束 270
25.5.1 創建主鍵、唯一性約束和
索引 270
25.5.2 參照完整性約束 270
25.6 使用查詢 270
25.7 創建視圖 271
25.8 創建和使用程序 272
25.8.1 創建存儲過程 272
25.8.2 創建存儲函數 273
25.8.3 使用程序 273
25.9 創建和使用觸發器 274
25.9.1 創建觸發器 274
25.9.2 使用觸發器 275
25.10 創建事件和使用事件 276
25.10.1 創建執行一次的事件 276
25.10.2 創建周期性執行的事件 277
25.10.3 編輯、導出或刪除事件 277
25.11 用戶與權限管理 278
25.11.1 編輯當前用戶的權限 278
25.11.2 添加新用戶和設置權限 279
25.12 備份與恢復數據庫 281
25.12.1 備份數據庫 281
25.12.2 恢復數據庫 282
【項目實踐】 282
【習題】 282
項目十一 MySQL集群架構搭建實例
任務26
Linux操作系統中搭建
MySQL集群 284
任務背景 284
任務目標 284
任務要求 285
任務分解 285
26.1 認識MySQL主從 285
26.1.1 MySQL支持的復制的
類型 285
26.1.2 MySQL復制技術的特點 285
26.1.3 MySQL主從復制過程 286
26.2 MySQL主從詳細配置 287
26.2.1 主服務器配置 287
26.2.2 從服務器配置 287
26.2.3 配置驗證 288
【項目實踐】 289
【習題】 289