本書瞄準當(dāng)前高校MySQL數(shù)據(jù)庫教學(xué)與實驗的需求,在MySQL 8.0的基礎(chǔ)上編寫而成。全書分為兩篇。第一篇為MySQL數(shù)據(jù)庫基礎(chǔ),內(nèi)容包含:數(shù)據(jù)庫基礎(chǔ)、MySQL語言、數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)查詢、視圖和索引、MySQL編程技術(shù)、MySQL安全管理、備份和恢復(fù)、事務(wù)管理、PHP和MySQL教學(xué)管理系統(tǒng)開發(fā)。第二篇為MySQL實驗,所編排的各個實驗與第一篇中的各章(除第10、11章外)內(nèi)容相對應(yīng),可以有效地幫助讀者鞏固所學(xué)的理論知識。
本書可作為本科院校相關(guān)專業(yè)的教材,也可供高職高專院校及相關(guān)培訓(xùn)機構(gòu)教學(xué)使用,還可作為參加全國計算機等級考試人員以及數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計開發(fā)人員的參考用書。
1.深化實驗教學(xué),鞏固所學(xué)理論!
本書第二篇中的各個實驗,均分為驗證性實驗和設(shè)計性實驗兩個部分。通過實驗教學(xué),教師可以很大限度地培養(yǎng)學(xué)生利用SQL獨立設(shè)計、編寫和調(diào)試代碼的能力,還可以促使院校理論教學(xué)和實驗教學(xué)融為一體。
2.系統(tǒng)構(gòu)建知識框架,著重培養(yǎng)綜合素質(zhì)!
本書系統(tǒng)構(gòu)建了MySQL數(shù)據(jù)庫的基礎(chǔ)知識框架,通過實驗著重培養(yǎng)學(xué)生在數(shù)據(jù)庫設(shè)計、MySQL查詢語句編寫、數(shù)據(jù)庫語言編程以及簡單數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)等方面的能力。
3.配套教輔資源豐富,全方位服務(wù)教師教學(xué)!
本書提供PPT、教學(xué)大綱、教案、課后習(xí)題參考答案(見附錄A)、教學(xué)進度表、所有實例的源代碼等教輔資源,讀者可通過人郵教育社區(qū)(www.ryjiaoyu.com)進行下載。
趙明淵:
男,電子科技大學(xué)計算機應(yīng)用技術(shù)專業(yè)博士,中國農(nóng)業(yè)銀行四川省分行計算機高級工程師,國務(wù)院頒發(fā)證書的享受政府特殊津貼的專家,西南財經(jīng)大學(xué)兼職教授。從1995年起至今,先后在電子科技大學(xué)、四川大學(xué)、西南財經(jīng)大學(xué)等校擔(dān)任SQL Server數(shù)據(jù)庫、Oracle數(shù)據(jù)庫、MySQL數(shù)據(jù)庫、Access數(shù)據(jù)庫、數(shù)據(jù)庫原理與應(yīng)用、大數(shù)據(jù)等課程的教學(xué)工作。獲四川省科技進步獎三等獎2項:1987年《遠程通訊勞動人事統(tǒng)計信息系統(tǒng)》,本人系項目組長和第一主研人員;2002年《四川省農(nóng)業(yè)銀行經(jīng)營管理信息系統(tǒng)》,本人系項目組長和第一主研人員。主編6本著作:《SQL Server數(shù)據(jù)庫教程》2014年,《Oracle數(shù)據(jù)庫教程》2015年,《Java EE教程》2015年,《SQL Server數(shù)據(jù)庫教程(第2版)》2017年,《Android應(yīng)用開發(fā)教程》2018年,《數(shù)據(jù)庫原理與應(yīng)用教程——SQL Server 2014》2018年。在近期發(fā)表的學(xué)術(shù)論文中,SCI檢索4篇,EI檢索13篇。
唐明偉:
男,西華大學(xué)計算機與軟件工程學(xué)院,教授,副院長,博士。四川省第十二批學(xué)術(shù)和技術(shù)帶頭人后備人選,四川省計算機類教學(xué)指導(dǎo)委員會委員,教育部評審專家,四川省專家評審委員會專家,大數(shù)據(jù)與安全四川省教育廳重點實驗室主任,四川省計算機學(xué)會常務(wù)理事。四川等十余個省市科技部門科研項目和政府獎評審專家。至今,在國內(nèi)外重要期刊和國際會議上發(fā)表論文60余篇,其中被SCI/EI檢索50余篇。到目前為止,主持和主研包含國家級項目、教育部、四川省科技廳基金在內(nèi)的各類基金20余項,國家發(fā)明專利10余項多項。
第 一篇 MySQL數(shù)據(jù)庫基礎(chǔ)
第 1章 數(shù)據(jù)庫基礎(chǔ)
第 2章 MySQL語言
第3章 數(shù)據(jù)定義
第4章 數(shù)據(jù)操縱
第5章 數(shù)據(jù)查詢
第6章 視圖和索引
第7章 MySQL編程技術(shù)
第8章 MySQL安全管理
第9章 備份和恢復(fù)
第 10章 事務(wù)管理
第 11章 PHP和MySQL教學(xué)管理系統(tǒng)開發(fā)
第二篇 MySQL實驗
實驗1 數(shù)據(jù)庫基礎(chǔ) 208
實驗2 MySQL語言 214
實驗3 數(shù)據(jù)定義 216
實驗4 數(shù)據(jù)操縱 226
實驗5 數(shù)據(jù)查詢 231
實驗6 視圖和索引 237
實驗7 MySQL編程技術(shù) 241
實驗8 MySQL安全管理 247
實驗9 備份和恢復(fù) 250
附錄A 課后習(xí)題參考答案 252
附錄B 教學(xué)數(shù)據(jù)庫teaching的表結(jié)構(gòu)和樣本數(shù)據(jù) 272
參考文獻 275
【具體目錄】
第 一篇 MySQL數(shù)據(jù)庫基礎(chǔ)
第 1章 數(shù)據(jù)庫基礎(chǔ)
1.1 數(shù)據(jù)庫系統(tǒng)的基本概念 02
1.1.1 數(shù)據(jù)和信息 02
1.1.2 數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng) 03
1.2 數(shù)據(jù)模型 04
1.2.1 數(shù)據(jù)模型的概念、類型和組成要素 04
1.2.2 概念模型 06
1.2.3 邏輯模型 07
1.3 關(guān)系數(shù)據(jù)庫 08
1.3.1 關(guān)系數(shù)據(jù)庫的基本概念 08
1.3.2 關(guān)系運算 09
1.4 概念結(jié)構(gòu)設(shè)計和邏輯結(jié)構(gòu)設(shè)計 10
1.5 MySQL數(shù)據(jù)庫管理系統(tǒng) 13
1.6 MySQL 8.0的安裝和配置 14
1.6.1 MySQL 8.0安裝 14
1.6.2 MySQL 8.0配置 17
1.7 MySQL服務(wù)器的啟動、關(guān)閉和登錄 20
1.7.1 MySQL服務(wù)器的啟動和關(guān)閉 20
1.7.2 MySQL服務(wù)器登錄 21
本章小結(jié) 23
習(xí)題1
第 2章 MySQL語言
2.1 SQL和MySQL語言組成 26
2.1.1 SQL 26
2.1.2 MySQL語言組成 27
2.2 數(shù)據(jù)類型 28
2.2.1 數(shù)值類型 28
2.2.2 字符串類型 29
2.2.3 日期和時間類型 29
2.2.4 二進制數(shù)據(jù)類型 30
2.2.5 其他數(shù)據(jù)類型 30
2.2.6 數(shù)據(jù)類型的選擇 31
2.3 常量、變量、運算符和表達式 31
2.3.1 常量 31
2.3.2 變量 34
2.3.3 運算符和表達式 37
2.4 MySQL函數(shù) 39
2.4.1 數(shù)學(xué)函數(shù) 39
2.4.2 字符串函數(shù) 41
2.4.3 日期和時間函數(shù) 43
2.4.4 其他函數(shù) 44
本章小結(jié) 45
習(xí)題2
第3章 數(shù)據(jù)定義
3.1 數(shù)據(jù)定義語言 48
3.2 創(chuàng)建MySQL數(shù)據(jù)庫 49
3.2.1 MySQL數(shù)據(jù)庫的基本概念 49
3.2.2 創(chuàng)建數(shù)據(jù)庫 49
3.2.3 選擇數(shù)據(jù)庫 50
3.2.4 修改數(shù)據(jù)庫 51
3.2.5 刪除數(shù)據(jù)庫 51
3.3 創(chuàng)建MySQL表 52
3.3.1 表的基本概念 52
3.3.2 創(chuàng)建表 54
3.3.3 查看表 55
3.3.4 修改表 57
3.3.5 刪除表 60
3.4 數(shù)據(jù)完整性約束 60
3.4.1 數(shù)據(jù)完整性的基本概念 60
3.4.2 PRIMARY KEY約束 63
3.4.3 UNIQUE約束 65
3.4.4 FOREIGN KEY約束 66
3.4.5 CHECK約束 69
3.4.6 NOT NULL約束 70
本章小結(jié) 70
習(xí)題3
第4章 數(shù)據(jù)操縱
4.1 數(shù)據(jù)操縱語言 74
4.2 使用INSERT語句插入數(shù)據(jù) 74
4.2.1 INSERT語句的語法格式和插入數(shù)據(jù)的方法 74
4.2.2 插入多條記錄 77
4.2.3 REPLACE語句 78
4.2.4 插入查詢結(jié)果語句 78
4.3 使用UPDATE語句修改數(shù)據(jù) 79
4.3.1 修改指定記錄 79
4.3.2 修改全部記錄 80
4.4 使用DELETE語句刪除數(shù)據(jù) 80
4.4.1 刪除指定記錄 81
4.4.2 刪除全部記錄 81
本章小結(jié) 82
習(xí)題4
第5章 數(shù)據(jù)查詢
5.1 數(shù)據(jù)查詢語言 85
5.2 單表查詢 86
5.2.1 SELECT子句 86
5.2.2 WHERE子句 89
5.2.3 GROUP BY子句和HAVING子句 93
5.2.4 ORDER BY子句和LIMIT子句 97
5.3 多表查詢 98
5.3.1 連接查詢 99
5.3.2 子查詢 105
5.3.3 聯(lián)合查詢 108
本章小結(jié) 108
習(xí)題5
第6章 視圖和索引
6.1 視圖 112
6.1.1 視圖概述 112
6.1.2 創(chuàng)建視圖 113
6.1.3 查詢視圖 114
6.1.4 更新視圖 115
6.1.5 修改視圖 118
6.1.6 刪除視圖 119
6.2 索引 119
6.2.1 索引概述 119
6.2.2 創(chuàng)建索引 121
6.2.3 查看索引 123
6.2.4 刪除索引 124
本章小結(jié) 125
習(xí)題6
第7章 MySQL編程技術(shù)
7.1 存儲過程 128
7.1.1 存儲過程概述 128
7.1.2 創(chuàng)建存儲過程 129
7.1.3 局部變量 131
7.1.4 流程控制 133
7.1.5 存儲過程的調(diào)用 140
7.1.6 存儲過程的刪除 142
7.2 存儲函數(shù) 142
7.2.1 存儲函數(shù)概述 142
7.2.2 創(chuàng)建存儲函數(shù) 143
7.2.3 調(diào)用存儲函數(shù) 144
7.2.4 刪除存儲函數(shù) 144
7.3 觸發(fā)器 144
7.3.1 觸發(fā)器概述 144
7.3.2 創(chuàng)建觸發(fā)器 145
7.3.3 使用觸發(fā)器 146
7.3.4 刪除觸發(fā)器 148
7.4 事件 148
7.4.1 事件概述 148
7.4.2 創(chuàng)建事件 149
7.4.3 修改事件 151
7.4.4 刪除事件 151
本章小結(jié) 152
習(xí)題7
第8章 MySQL安全管理
8.1 權(quán)限系統(tǒng) 155
8.1.1 MySQL權(quán)限系統(tǒng)工作過程 155
8.1.2 MySQL權(quán)限表 156
8.2 用戶管理 157
8.2.1 創(chuàng)建用戶 157
8.2.2 刪除用戶 158
8.2.3 修改用戶賬號 158
8.2.4 修改用戶口令 159
8.3 權(quán)限管理 159
8.3.1 授予權(quán)限 159
8.3.2 撤銷權(quán)限 163
本章小結(jié) 164
習(xí)題8
第9章 備份和恢復(fù)
9.1 備份和恢復(fù)的基本概念 167
9.2 備份數(shù)據(jù) 168
9.2.1 使用SELECT…INTO OUTFILE語句導(dǎo)出表數(shù)據(jù) 168
9.2.2 使用mysqldump命令備份數(shù)據(jù) 169
9.3 恢復(fù)數(shù)據(jù) 173
9.3.1 表數(shù)據(jù)導(dǎo)入 173
9.3.2 使用mysql命令恢復(fù)數(shù)據(jù) 174
本章小結(jié) 175
習(xí)題9
第 10章 事務(wù)管理
10.1 事務(wù) 177
10.1.1 事務(wù)的概念 177
10.1.2 事務(wù)特性 177
10.2 事務(wù)控制語句 178
10.3 事務(wù)的并發(fā)處理 182
10.4 管理鎖 183
10.4.1 鎖機制 184
10.4.2 鎖的級別 184
10.4.3 死鎖 185
本章小結(jié) 186
習(xí)題10
第 11章 PHP和MySQL教學(xué)管理系統(tǒng)開發(fā)
11.1 PHP簡介 189
11.1.1 PHP基本概念和特點 189
11.1.2 PHP運行環(huán)境 190
11.1.3 PHP運行過程 191
11.2 教學(xué)項目數(shù)據(jù)庫創(chuàng)建 191
11.3 PHP開發(fā)環(huán)境搭建 192
11.3.1 PHP集成軟件環(huán)境的搭建 193
11.3.2 PHP開發(fā)工具 194
11.4 教學(xué)管理系統(tǒng)開發(fā) 199
11.4.1 主界面開發(fā) 199
11.4.2 學(xué)生管理界面開發(fā)與功能實現(xiàn) 201
本章小結(jié) 205
習(xí)題11
第二篇 MySQL實驗
實驗1 數(shù)據(jù)庫基礎(chǔ) 208
實驗1.1 E-R圖畫法與概念模型向邏輯模型的轉(zhuǎn)換 208
實驗1.2 MySQL數(shù)據(jù)庫安裝、啟動和關(guān)閉 212
實驗2 MySQL語言 214
實驗3 數(shù)據(jù)定義 216
實驗3.1 創(chuàng)建數(shù)據(jù)庫 216
實驗3.2 創(chuàng)建表 217
實驗3.3 數(shù)據(jù)完整性約束 221
實驗4 數(shù)據(jù)操縱 226
實驗5 數(shù)據(jù)查詢 231
實驗5.1 單表查詢 231
實驗5.2 多表查詢 233
實驗6 視圖和索引 237
實驗6.1 視圖 237
實驗6.2 索引 238
實驗7 MySQL編程技術(shù) 241
實驗7.1 存儲過程和存儲函數(shù) 241
實驗7.2 觸發(fā)器和事件 244
實驗8 MySQL安全管理 247
實驗9 備份和恢復(fù) 250
附錄A 課后習(xí)題參考答案 252
第 1章 數(shù)據(jù)庫基礎(chǔ) 252
第 2章 MySQL語言 253
第3章 數(shù)據(jù)定義 254
第4章 數(shù)據(jù)操縱 257
第5章 數(shù)據(jù)查詢 260
第6章 視圖和索引 263
第7章 MySQL編程技術(shù) 265
第8章 MySQL安全管理 268
第9章 備份和恢復(fù) 269
第 10章 事務(wù)管理 270
第 11章 PHP和MySQL教學(xué)管理系統(tǒng)開發(fā) 271
附錄B 教學(xué)數(shù)據(jù)庫teaching的表結(jié)構(gòu)和樣本數(shù)據(jù) 272
參考文獻 275