MySQL數據庫任務驅動式教程(第3版)(微課版)
石坤泉 湯雙霞
相關主題
商品描述
本書對標《全國電腦等級考試二級MySQL數據庫程序設計考試大綱》,結合Oracle認證考試(SQL認證)以及“l+X"Web前端開發職業技能等級考試內容編寫而成。本書採用MySQL8.0版本,將MySQL8.0的新特性、新功能寫入教材,主要講述數據庫設計的基本原理和基本方法、MySQL基礎及其應用。全書共11個項目(26個任務),包括認識數據庫,MySQL實訓環境配置,MySQL字符集與數據類型,建庫、建表與數據表管理,數據查詢、數據處理與視圖,創建和使用程序,數據庫安全與性能優化,PHP基礎及訪問MySQL數據庫,訪問MySQL數據庫,phpMyAdmin操作數據庫以及MySQL集群架構搭建實例。
本書可以作為高職高專學生的數據庫教材,也可以作為全國電腦等級考試二級MySQL數據庫程序設計、Oracle認證考試(SQL認證)以及“l+X"Web前端開發職業技能等級考試的參考教材,還可以作為數據庫開發人員的實用參考書或者職業培訓教材。
作者簡介
石坤泉,男,1967年4月出生,广东兴宁人,中共党员,计算机科学技术教授,广东南粤教坛新秀,广州市教育系统优秀党务工作者。广东省高等学校公共课教指委委员,中国工信出版传媒集团“十三五”职业教育规划教材评审专家,广东省计算机学会竞赛委员会委员,教育部教育管理信息中心全国信息技术应用水平大赛优秀指导老师。
系统讲授《MySql数据库技术与应用》、《操作系统实务》、《数字电子线路》、《ACCESS数据库》、《计算机文化基础》等多门课程,教学效果好,曾多次获得学校教学质量优秀奖、优秀教师称号。
主持和主要成员省、市科技项目、教育科学规划、教育教学改革、创新创业教育等科研项目15项190多万元,其中,广东省教育厅高校省级重点平台和重大科研项目2项、广东省教育科学规划项目2项、广州市教育科学规划课题2项,主持广东省教育厅与思科(中国)产学合作协同育人项目2项;发表专业论文25篇(其中,北大中文核心4篇,EI、CSSCI、SCD/CSCD、等3篇,ISTP检索3篇);实用专利和软件著作权11项;获广州市高等学校教学成果奖一等奖1项,校级教学成果一等奖1项;主编(著)教材11部,专著1部,其中,主编国家“十二五规划”教材2部,新形态立体化教材7部,并申报国家“十三五规划”教材4部;主持校级精品课程2门。
目錄大綱
基礎篇
項目一認識數據庫
任務1
認識數據庫1
【任務背景】1
【任務要求】1
【任務分解】1
1.1 瞭解數據庫的基本應用1
1.2 瞭解數據庫的幾個概念2
1.3 認識關系數據庫3
1.4 關系數據庫設計4
1.4.1 實體、展性、聯系4
1.4.2 將E-R 圖轉換為關系模式6
1.4.3 關系模式的規範化6
1.5 數據庫應用系統體系結構9
1.5.1 認識C/S 模式數據庫9
1.5.2 認識B/S 模式數據庫9
1.6 認識一個真實的關系數據庫10
【項目實踐】12
【習題】12
任務2
認識MySQL14
【任務背景】14
【任務要求】14
【任務分解】14
2.1 認識SQL14
2.1.1 SQL 的特點4
2.1.2 SQL 的類型15
2.2 MySQL概述15
2.3 認識MySQL8.015
2.4 MySQL的管理工具16
2.5 初識MySQL數據類型19
2.6 初識MySQL的基本語句19
【習題】19
項目二MySQL實訓環境配置
任務3
Windows 操作系統中MySQL的安裝與配置21
【任務背景】21
【任務要求】21
【任務分解】21
3.1 MySQL服務器的安裝與配置21
3.1.1 MySQL 服務器的安裝22
3.1.2 MySQL 服務器的配置24
3.2 更改MySQL的配置27
3.2.1 通過配置向導來更改配置27
3.2.2 通過修改my.ini 文件來更改配置28
3.3 連接MySQL本地服務28
3.3.1 MySQL服務器的啟動和關閉28
3.3.2 MySQL客戶端鏈接MySQL服務器29
3.3.3 DOS命令連接MySQL服務器30
3.4 遠程訪問MySQL服務器30
【項目實踐】31
【習題】31
任務4
安裝配置WAMP Server 3.2 32
【任務背景】32
【任務要求】32
【任務分解】32
4.1 認識WAMP Server 3.2 32
4.2 安裝WAMP Server 3.2 32
4.3 配置WAMP Server3.2 34
4.3.1 設置用戶登錄密碼 34
4.3.2 PHP文件目錄 35
【項目實踐】 35
【習題】 35
項目三MySQL字符集與數據類型
任務5
認識和設置MySQL字符集36
【任務背景】 35
【任務要求】 35
【任務分解】 35
5.1 認識字符集和校對原則 36
5.2 MySQL 8.0支持的字符集和校對原則 37
5.3 確定字符集和校對原則 38
5.4 使用MySQL字符集時的建議. 39
【項目實踐】 40
【習題】 40
任務6
MySQL數據類型 41
【任務背景】41
【任務要求】41
【任務分解】41
6.1 整數類型 41
6.2 浮點數類型和定點數類型 41
6.3 CHAR類型和VARCHAR類型 42
6.4 TEXT類型和BLOB類型 42
6.5 BINARY類型和VARBINARY類型 43
6.6 日期和時間類型 43
6.7 ENUM類型和SET類型 43
6.8 如何選擇數據類型 44
6.9 數據類型的附加屬性 44
【項目實踐】 45
【習題】 45
項目四 建庫、建表與數據表管理
任務7
創建數據庫和表 46
【任務背景】 46
【任務要求】 46
【任務分解】 46
7.1 創建與管理數據庫 46
7.1.1 創建庫 46
7.1.2 查看庫 47
7.1.3 修改庫 47
7.1.4 刪除庫 47
7.2 創建與管理表 47
7.2.1 創建表 47
7.2.2 查看表. 51
7.2.3 修改表. 51
7.2.4 復製表. 52
7.2.5 刪除表 52
7.3 表數據操作 53
7.3.1 插入數據 53
7.3.2 修改數據 55
7.3.3 刪除數據 55
7.4 對JSON數據類型的使用 56
7.5 計算字段的使用 56
【項目實踐】56
【習題】58
任務8
創建和管理索引 60
【任務背景】60
【任務要求】60
【任務分解】60
8.1 認識索引 60
8.1.1 索引的分類 61
8.1.2 索引的設計原則 61
8.2 索引的創建 62
8.2.1 創建表時創建索引 62
8.2.2 用CREATE INDEX語句創建索引 62
8.2.3 用ALTER TABLE語句創建索引 64
8.3 索引的查看 64
8.4索引的刪除 65
8.4.1 用DROP IN DEX 語句刪除索引 65
8.4.2 用ALTER TABLE語句刪除索引 65
【項目實踐】 66
【習題】 66
任務9
數據約束和參照完整性 68
【任務背景】 68
【任務要求】 68
【任務分解】 68
9.1 PRMI ARKY EY約束 68
9.1.1 理解PRIMARY KEY約束 68
9.1.2 設置主鍵的兩種方式 68
9.1.3 復合主鍵 69
9.1.4 修改表的主鍵 69
9.2 UNIQUE約束 69
9.2.1 理解UNIQUE約束 69
9.2.2 創建UNI QUE約束 69
9.2.3 修改UNIQUE 約束 70
9.3 FOREGI KN EY參照完整性約束 70
9.3.1 理解參照完整比約束 70
9.3.2 在創建表時創建外鍵 71
9.3.3 對已有的表添加外鍵 71
9.3.4 創建級聯刪除、級聯更新 72
9.4 CHECK約束 72
9.4.1 理解CHECK約束 72
9.4 .2 創建CHEC K約束 72
【項目實踐】 73
【習題】 73
項目五 數據查詢、數據處理與視圖
任務10
數據庫的查詢 74
【任務背景】 74
【任務要求】 74
【任務分解】 74
10.1 瞭解SELECT語法結構 4
10.2 認識基本子句 .75
10.2.1 認識SELECT 子句 75
10.2.2 認識FROM 子句 76
10.2.3 認識WHERE 子句 77
10.2.4 認識GROUP BY 子句 80
10.2.5 認識ORDER BY 子句 81
10.2.6 認識HAVING 子句 82
10.2.7 認識LIMIT 子句 83
10.3 使用聚合函數進行統計查詢 83
10.4 多表連接查詢 84
10.4.1 全連接. 85
10.4.2 JOIN 連接 86
10.5 嵌套查詢 87
10.5.1 嵌套在WHERE 子句中 88
10.5.2 嵌套在SELECT 子句中 89
10.5.3 嵌套在FROM 子句中 89
10.5.4 IN 子查詢 90
10.5.5 比較子查詢 91
10.5.6 EXISTS 子查詢 92
10.6 聯合查詢 92
【項目實踐】 93
【習題】 94
任務11
MySQL 運算符和函數 96
【任務背景】 96
【任務要求】 96
【任務分解】 96
11.1 認識和使用運算符 96
11.1.1 算術運算符 96
11.1.2 比較運算符 98
11.1.3 邏輯運算符 103
11.1.4 位運算符104
11.1.5 運算符的優先級 105
11.2 認識和使用函數 106
11.2.1 數學函數 106
11.2.2 聚合函數 109
11.2.3 日期和時間函數111
11.2.4 控制流判斷函數 115
11.2.5 字符串函數 117
11.2.6 系統信息函數. 118
11.2.7 加密函數 119
11.2.8 格式化函數 119
11.3 使用JSON函數 119
11.4 使用窗口函數 120
【項目實踐】122
【習題】 122
任務12
創建和使用視圖 123
【任務背景】 123
【任務要求】 123
【任務分解】 123
12.1 認識視圖123
12.2視圖的特性 123
12.3 創建視圖 124
12.3.1 來自一張基本表 124
12.3.2 來自多張基本表 125
12.3.3 來自視圖 125
12.4 查看視圖 126
12.4.1 查看己創建的視圖 126
12.4.2 查看視圖的結構 126
12.4.3 查看視圖的定義 126
12.5 使用視圖 127
12.5.1 使用視圖進行查詢 127
12.5.2 使用視圖進行計算 127
12.5.3 使用視圖操作基本表數據 127
12.6 修改視圖 128
12.7刪除視圖 128
【項目實踐】 129
【習題】. 129
高級篇
項目六 創建和使用程序
任務13
建立和使用存儲過程 131
【任務背景】131
【任務要求】 131
【任務分解】131
13.1 認識存儲過程 131
13.2 創建基本的存儲過程 132
13.2.1 關於DELIMITER 命令 132
13.2.2 創建基本存儲過程 132
13.2.3 查看存儲過程 134
13.3 執行存儲過程 135
13.4 創建帶變量的存儲過程 135
13.4.1 局部變量聲明與賦值 135
13.4.2 創建使用局部變量的存儲過程 136
13.5 創建帶有流程控制語句的存儲過程 137
13.5.1 使用IFTHEN ELSE語句 137
13.5.2 使用CASE語句. 138
13.6 在存儲過程調用其他存儲過程 139
13.7 修改存儲過程 140
13.8 查看存儲過程的定義 141
13.9 刪除存儲過程 141
【項目實踐】 141
【習題】 142
任務14
建立和使用存儲函數 143
【任務背景】 143
【任務要求】143
【任務分解】143
14.1 認識存儲函數143
14.2 創建存儲函數143
14.2.1 創建基本的存儲函數144
14.2.2 創建帶變量的存儲函數144
14.3 調用存儲函數145
14.3.1 使用SELECT關鍵字調用存儲函數.. 145
14.3.2 調用另外一個存儲函數或者存儲過程 145
14.4 查看存儲函數146
14.5 修改存儲函數146
14.6 刪除存儲函數146
【項目實踐】147
【習題】.147
任務15
創建和使用觸發器148
【任務背景】148
【任務要求】148
【任務分解】148
15.1 認識觸發器148
15.2 創建觸發器149
15.2.1 激發它表數據更新149
15.2.2 激發自表數據更新151
15.2.3 觸發器調用存儲過程151
15.3 查看觸發器152
15.4 刪除觸發器 152
【項目實踐】152
【習題】153
任務16
創建和使用事件154
【任務背景】154
【任務要求】154
【任務分解】154
16.1 認識事件154
16.2 創建事件..155
16.2.1 創建某個時刻發生的事件155
16.2.2 創建在指定區間周期性發生的事件.156
16.2.3 在事件中調用存儲過程或存儲函數. 157
16.3 查看事件..157
16.4 修改事件..157
16.5 刪除事件158
【項目實踐】158
【習題】158
項目七 數據庫安全與性能優化
任務17
用戶與權限 159
【任務背景】159
【任務要求】159
【任務分解】159
17.1 創建用戶賬戶160
17.1.1 用CREATE USER創建用戶 160
17.1.2 修改用戶密碼.161
17.1.3 重命名用戶名.161
17.2 授予用戶權限162
17.2.1 關於MySQL 的權限.162
17.2.2 用GRANT 授權..163
17.3 用REVOKE收回權限164
17.4 權限轉移165
17.5 權限限制165
17.6 密碼管理策略166
17.6.1 過期時間管理166
17.6.2 MySQL 用戶密碼重用策略設置.. 166
17.7 角色管理166
17.7.1 創建角色並授予用戶角色權限.. 167
17.7.2 檢查角色權限167
17.7.3 撤銷角色或角色權限167
17.7.4 刪除角色. 168
17.7.5 角色和用戶在實際中的應用 168
【項目實踐】168
【習題】.169
任務18
數據庫備份與恢復170
【任務背景】170
【任務要求】170
【任務分解】170
18.1用SELECT INTO OUTFILE備份表數據170
18.2 用LOAD DATA INFILE恢復表數據171
18.3 用mysqldump備份與恢復171
18.3.1 進入my sqldump.171
18.3.2 備份與加夏表. 172
18.3.3 備份與恢復庫. 172
18.3.4 將表結構和數據分別備份..173
18.3.5 備份與恢復其他方面.. 174
18.4 用mysqlimport恢復表數據174
18.5 用SOURCE恢復表和數據庫174
18.6 用日誌備份175
【項目實踐】176
【習題】.176
任務19
數據庫性能優化 177
【任務背景】177
【任務要求】177
【任務分解】177
19.1 優化MySQL服務器177
19.1.1 通過修改my.ini 文件進行性能優化177
19.1.2 通過MySQL 控制臺柱行性能優化178
19.2 優化表結構設計和數據操作179
19.2.1 添加中間表.179
19.2.2 增加冗餘字段.180
19.2.3 合理設置表的數據類型和屬性180
19.2.4 優化插入記錄的速度..181
19.2.5 對表進行分析、檢查、優化和修復 181
19.3 優化查詢183
19.3.1 查看SELECT 語句的執行數據183
19.3.2 使用索引優化查詢.. 185
19.3.3 優化子查詢.188
19.3.4 優化漫查詢. 188
19.4 優化性能的其他方面189
19.5 數據庫的架構優化190
19.6 配置文件優化190
19.7 存儲與數據格式優化191
【項目實踐】192
【習題】.192
任務20
事務與鎖 193
【任務背景】193
【任務要求】193
【任務分解】193
20.1 MySQL事務的四大特性(ACID) 193
20.2 MySQL事務隔離級別與一致性194
20.2.1 事務的隔離級別194
20.2.2 數據一致性.197
20.2.3 事務提交與回滾SQL語句.197
20.3 MySQL中的鎖機制198
20.3.1 3 種鎖方式與4 種鎖模式198
20.3.2 死鎖的產生方式..199
【習題】.200
應用篇
項目八 PHP基礎及訪問MySQL數據庫
任務21
PHP初識與應用 202
【任務背景】202
【任務要求】202
【任務分解】202
21.1 PHP技術基礎202
21.1.1 PHP 標記風格..202
21.1.2 HTML中嵌入PHP203
21.1.3 PHP 中輸出HTML203
21.1.4 PHP中調用JavaScript 204
21.2 PHP的數據類型2 04
21.2.1 整型. 204
21.2.2 浮點型. 204
21.2.3 布爾型. 204
21.2.4 字符串.. 205
21.3 PHP數據處理205
21.3.1 PHP對數據組的處理.. 205
21.3.2 PHP對字符串的處理208
21.3.3 用PHP處理日期和時間209
21.3.4 PHP中對URL、HTTP的處理 209
21.3.5 PHP中的數學運算.210
21.4 PHP 連接MySQL數據庫212
21.4.1 PHP程序連接到MySQL數據庫的原理.212
21.4.2 PHP連接到MySQL函數212
21.5 PHP操作MySQL數據庫212
21.5.1 一次執行一條SQL語句.212
21.5.2 一次執行多條語句213
21.5.3 處理查詢結果.213
21.5.4 關閉創建的對象214
21.6 PHP備份與還原MySQL數據庫214
21.6.1 MySQL 數據庫與表的備份214
21.6.2 MySQL 數據庫與表的還原.214
21.7 應用實踐:基於文本的簡易留言板215
【習題】.217
項目九 訪問MySQL數據庫
任務22
Java訪問MySQL數據庫218
【任務背景】 218
【任務要求】 218
【任務分解】 218
22.1 Java 連接MySQL數據庫.. 218
22.1.1 下載並安裝JDBC驅動MySQL Connector/J 218
22.1.2 java.sql 的接口和作用219
22.1.3 連接MySQL 購居庫219
22.2 Java操作MySQL數據庫.. 219
22.2.1 創建Statement 對象219
22.2.2 插入、更新或者刪除數據220
22.2.3 使用SELECT 語句查詢數據220
22.3 Java備份MySQL數據庫 220
22.4 Java還原MySQL數據庫 221
【項目實踐】 221
【習題】.. 221
任務23
C#訪問MySQL數據222
【任務背景】 222
【任務要求】 222
【任務分解】 222
23.1 C#連接MySQL 數據庫 222
23.1.1 下載並安裝Connector/Net驅動程序..222
23.1.2 使用Connector/Net驅動程序. 223
23.1.3 連接MySQL數據庫224
23.2 C#操作MySQL 數據庫224
23.2.1 創建MySqlCommand對象.. 224
23.2.2 關閉創建的對象.. 224
23.3 C#備份與還原MySQL數據庫225
23.3.1 C#備份MySQL數據庫 225
23.3.2 C#MySQL數據庫 225
【項目實踐】225
【習題】.225
任務24
Python訪問MySQL數據庫 226
【任務背景】226
【任務要求】226
【任務分解】226
24.1 Python 技術基礎226
24.1.1 什麽是MySQLdb.. 226
24.1.2 安裝Python 226
24.1.3 安裝MySQLdb.. 227
24.2 Python 數據類型228
24.3 Python 連接數據庫228
24.4 Python 操作數據庫229
24.4.1 獲取操作游標.. 229
24.4.2 操作庫 229
24.4.3 操作數據表. 229
24.4.4 數據查詢 229
24.5 Python 提交與回滾230
【項目實踐】231
【習題】.231
項目十 phpMyAdmin操作數據庫
任務25
phpMyAdmin操作數據庫232
【任務背景】232
【任務要求】232
【任務分解】232
25.1 創建與管理數據庫232
25.2 創建與管理表 233
25.2.1 創建表233
25.2.2 管理表.234
25.3 字符集設置235
25.4 表數據操作236
25.4.1 插入數據..236
25.4.2 導入數據. 236
25.4.3 操作數據..237
25.5 索引與參照完整性約束237
25.5.1 創建主鍵、唯一性約束和索引237
25.5.2 參照完整性約束.. 237
25.6 使用查詢238
25.7 創建視圖239
25.8 創建和使用程序239
25.8.1 創建存儲過程239
25.8.2 創建存儲函數240
25.8.3 使用程序..241
25.9 創建和使用觸發器241
25.9.1 創建觸發器241
25.9.2 使用觸發器..242
25.10 創建事件和使用事件243
25.10.1 創建一次執行的事件.. 243
25.10.2 創建周期性執行的事件243
25.10.3 編輯、導出或刪除事件244
25.11 用戶與權限管理244
25.11.1 編輯當前用戶的權限..244
25.11.2 添加新用戶和設置權限246
25.12 備份與恢復數據庫247
25.12.1 數據庫備份247
25.12.2 數據庫恢復.248
【項目實踐】248
【習題】.248
項目十一 MySQL集群架構搭建實例
任務26
Linux操作系統中搭建MySQL集群249
【任務背景】249
【任務要求】249
【任務分解】249
26.1 認識MySQL 主從249
26.1.1 MySQL支持的復制的類型..250
26.1.2 MySQL復制技術的特點.. 250
26.1.3 MySQL主從復制過程250
26.2 MySQL 主從詳細配置251
26.2.1 Master 服務器配置251
26.2.2 Slave 服務器配置.. 252
26.2.3 配置驗證.. 253
【項目實踐】253
【習題】.253
附錄
全國電腦等級考試二級MySQL數據庫程序設計考試大綱(2018年版)255