1. 教材厚度適合高校中的學時要求。
2. 講解方式符合教學:采用普通高等院校傳統教學模式,采用基礎知識講解、經典案例分析、綜合案例應用的寫法。
3. 慕課的形式深受老師歡迎。
4. 配套資源比一般教科書豐富,包括教學視頻、自測題庫、案例代碼、PPT課件、習題答案、拓展案例等。
第1章 數據庫設計概述 1
1.1 數據庫概述 2
1.1.1 數據庫與數據庫管理系統 2
1.1.2 數據模型 3
1.1.3 結構化查詢語言SQL 3
1.2 數據庫的體系結構 3
1.2.1 數據庫三級模式結構 3
1.2.2 三級模式之間的映射 4
1.3 E-R圖 4
1.3.1 實體和屬性 4
實例:設計圖書館管理系統的圖書實體圖
1.3.2 關系 5
1.3.3 E-R圖的設計原則 5
實例:設計圖書館管理系統的E-R圖
1.4 數據庫設計 6
1.4.1 為實體建立數據表 6
實例:根據圖書實體建立圖書數據表
1.4.2 為表建立主鍵或外鍵 7
1.4.3 為字段選擇合適的數據類型 7
1.4.4 定義約束條件 8
小結 8
習題 8
第2章 MySQL概述 9
2.1 為什么選擇MySQL數據庫 10
2.1.1 什么是MySQL數據庫 10
2.1.2 MySQL的優勢 10
2.1.3 MySQL的發展史 10
2.2 MySQL特性 10
2.3 MySQL服務器的安裝與配置 11
2.3.1 下載MySQL 11
2.3.2 MySQL環境的安裝 13
2.3.3 啟動、連接、斷開和停止MySQL服務器 20
小結 23
上機指導 24
習題 25
第3章 MySQL數據庫管理 26
3.1 創建數據庫 27
3.1.1 通過CREATE DATABASE語句創建數據庫 27
實例:創建圖書館管理系統數據庫
3.1.2 通過CREATE SCHEMA語句創建數據庫 27
實例:通過CREATE SCHEMA語句創建名稱為db_library1的數據庫
3.1.3 創建指定字符集的數據庫 28
實例:創建使用GBK字符集的數據庫
3.1.4 創建數據庫前判斷是否存在同名數據庫 28
實例:創建圖書館管理系統數據庫前判斷是否存在同名數據庫
3.2 查看數據庫 29
實例:查看服務器中的所有數據庫
3.3 選擇數據庫 29
實例:設置默認的數據庫
3.4 修改數據庫 30
實例:修改數據庫使用的字符集
3.5 刪除數據庫 31
實例:刪除3.1.4節創建的數據庫
3.6 數據庫存儲引擎的應用 31
3.6.1 查詢MySQL中支持的存儲引擎 31
實例:查詢默認的存儲引擎
3.6.2 InnoDB存儲引擎 33
3.6.3 MyISAM存儲引擎 34
3.6.4 MEMORY存儲引擎 34
3.6.5 如何選擇存儲引擎 35
小結 36
上機指導 36
習題 37
第4章 MySQL表結構管理 38
4.1 MySQL數據類型 39
4.1.1 數字類型 39
4.1.2 字符串類型 40
4.1.3 日期和時間數據類型 41
4.2 創建表 41
實例:創建圖書館管理系統的圖書信息表
4.2.1 設置默認的存儲引擎 43
實例:為圖書類型表設置使用MyISAM存儲引擎
4.2.2 設置自增類型字段 44
實例:為圖書類型表設置自動編號
4.2.3 設置字符集 45
4.2.4 復制表結構 45
實例:為圖書信息表建立副本
4.3 修改表結構 48
4.3.1 修改字段 48
實例:在圖書信息表的副本中添加一個新的字段
4.3.2 修改約束條件 49
4.3.3 修改表的其他選項 50
4.3.4 修改表名 50
實例:修改圖書信息表的副本為tb_books
4.4 刪除表 51
實例:刪除圖書信息表的副本
4.5 設置索引 51
4.5.1 索引概述 51
4.5.2 創建索引 52
實例:創建考生成績表并設置索引
實例:為圖書信息表的書名字段設置索引
4.5.3 刪除索引 55
實例:刪除圖書信息表的書名字段的索引
4.6 定義約束 56
4.6.1 定義主鍵約束 56
實例:創建圖書館管理系統的管理員信息表并將id字段設置為主鍵約束
實例:創建學生信息表并將學號和班級號設置為主鍵約束
4.6.2 定義候選鍵約束 57
實例:將圖書信息表的書名字段設置為候選鍵約束
4.6.3 定義非空約束 58
實例:創建圖書館管理系統的管理員信息表,并為其設置非空約束
4.6.4 定義CHECK約束 58
實例:創建學生信息表,限制其age字段的值只能是7~18(不包括18)的數
實例:創建圖書信息表,限制其typeid字段的值只能是類別表的id字段的值
小結 60
上機指導 60
習題 61
第5章 表記錄的更新操作 62
5.1 插入表記錄 63
5.1.1 使用INSERT…VALUES語句插入新記錄 63
實例:向圖書館管理系統的管理員信息表中插入一條新記錄
實例:向管理員信息表中插入記錄的一部分
5.1.2 插入多條記錄 65
實例:向管理員信息表中批量插入3條新記錄
5.1.3 使用INSERT…SELECT語句插入結果集 66
實例:從圖書館管理系統的借閱表中獲取部分借閱信息插入到歸還表中
5.1.4 使用REPLACE語句插入新記錄 68
5.2 修改表記錄 69
實例:將圖書館管理系統的借閱表中的是否歸還字段值設置為1
5.3 刪除表記錄 70
5.3.1 使用DELETE語句刪除表記錄 70
實例:將圖書館管理系統的管理員信息表中的名稱為admin的管理員刪除
5.3.2 使用TRUNCATE語句清空表記錄 71
實例:清空圖書館管理系統的管理員信息表
小結 71
上機指導 72
習題 72
第6章 表記錄的檢索 73
6.1 基本查詢語句 74
6.2 單表查詢 75
6.2.1 查詢所有字段 76
實例:查詢圖書館管理系統的圖書信息表的全部數據
6.2.2 查詢指定字段 76
實例:從圖書館管理系統的圖書信息表中查詢圖書的名稱和作者
6.2.3 查詢指定數據 76
實例:從圖書館管理系統的管理表中查詢名稱為mr的管理員
6.2.4 帶IN關鍵字的查詢 77
實例:從圖書館管理系統的圖書表中查詢位于左A-1或右A-1的圖書信息
6.2.5 帶BETWEEN AND的范圍查詢 78
實例:從圖書館管理系統的借閱表中查詢指定時間段內的借閱信息
6.2.6 帶LIKE的字符匹配查詢 78
實例:對圖書館管理系統的圖書信息進行模糊查詢
6.2.7 用IS NULL關鍵字查詢空值 79
實例:查詢圖書館管理系統的讀者類型表中name字段為空的記錄
6.2.8 帶AND的多條件查詢 79
實例:判斷輸入的管理員賬號和密碼是否存在
6.2.9 帶OR的多條件查詢 80
實例:查詢圖書館管理系統的管理員表中名稱為mr或者mingrisoft的記錄
6.2.10 用DISTINCT關鍵字去除結果中的重復行 80
實例:從圖書館管理系統的讀者信息表中獲取職業
6.2.11 用ORDER BY關鍵字對查詢結果排序 81
實例:對圖書借閱信息進行排序
6.2.12 用GROUP BY關鍵字分組查詢 81
實例:分組統計每本圖書的借閱次數(3例)
6.2.13 用LIMIT限制查詢結果的數量 83
實例:查詢最后被借閱的3本圖書
實例:查詢從編號2開始的3條記錄
6.3 聚合函數查詢 83
6.3.1 COUNT()函數 83
實例:統計圖書館管理系統中的讀者人數
6.3.2 SUM()函數 84
實例:統計商品的銷售金額
6.3.3 AVG()函數 84
實例:計算學生的平均成績
6.3.4 MAX()函數 85
實例:計算學生表中的最高成績
6.3.5 MIN()函數 86
實例:計算學生表中的最低成績
6.4 連接查詢 86
6.4.1 內連接查詢 86
實例:使用內連接查詢出圖書的借閱信息
6.4.2 外連接查詢 88
實例:使用左外連接獲取圖書的最多借閱天數
實例:使用右外連接獲取圖書的最多借閱天數
6.4.3 復合條件連接查詢 89
實例:查詢出未歸還的圖書借閱信息
6.5 子查詢 90
6.5.1 帶IN關鍵字的子查詢 90
實例:查詢被借閱過的圖書信息
6.5.2 帶比較運算符的子查詢 91
實例:查詢考試成績為優秀的學生信息
6.5.3 帶EXISTS關鍵字的子查詢 92
實例:查詢已經被借閱的圖書信息
6.5.4 帶ANY關鍵字的子查詢 93
實例:查詢比一年三班最低分高的全部學生信息
6.5.5 帶ALL關鍵字的子查詢 94
實例:查詢比一年三班最高分高的全部學生信息
6.6 合并查詢結果 95
實例:將圖書信息表1和圖書信息表2合并(2例)
6.7 定義表和字段的別名 96
6.7.1 為表取別名 96
實例:使用左連接查詢出圖書的完整信息,并為表指定別名
6.7.2 為字段取別名 96
實例:統計每本圖書的借閱次數,并取別名為degree
6.8 使用正則表達式查詢 97
6.8.1 匹配指定字符中的任意一個 98
實例:在圖書館管理系統中查詢包括字母k、r或s的管理員信息
6.8.2 使用“*”和“+”來匹配多個字符 99
實例:在圖書館管理系統中查詢E-mail地址不正確的讀者信息
小結 100
上機指導 100
習題 101
第7章 視圖 102
7.1 視圖概述 103
7.1.1 視圖的概念 103
7.1.2 視圖的作用 103
7.2 創建視圖 104
7.2.1 查看創建視圖的權限 104
實例:查看用戶是否具有創建視圖的權限
7.2.2 創建視圖 104
實例:創建保存完整圖書信息的視圖
7.2.3 創建視圖的注意事項 106
7.3 視圖操作 106
7.3.1 查看視圖 106
實例:查看圖書視圖的結構
實例:查看圖書視圖的詳細定義
7.3.2 修改視圖 108
實例:修改圖書視圖的結構
實例:使用ALTER語句修改圖書視圖的結構
7.3.3 更新視圖 110
實例:更新圖書視圖中的數據
7.3.4 刪除視圖 112
實例:刪除已經創建的圖書視圖
小結 113
上機指導 113
習題 114
第8章 觸發器 115
8.1 MySQL觸發器 116
8.1.1 創建MySQL觸發器 116
實例:保存圖書信息時,自動向日志表添加一條數據
8.1.2 創建具有多個執行語句的觸發器 117
實例:刪除圖書信息時,分別向日志表和臨時表中各添加一條數據
8.2 查看觸發器 119
8.2.1 SHOW TRIGGERS 119
8.2.2 查看triggers表中的觸發器信息 120
8.3 使用觸發器 120
8.3.1 觸發器的執行順序 121
實例:觸發器與表操作的執行順序
8.3.2 使用觸發器維護冗余數據 122
實例:使用觸發器維護庫存數量
8.4 刪除觸發器 123
實例:刪除指定名稱的觸發器
小結 124
上機指導 124
習題 125
第9章 存儲過程與存儲函數 126
9.1 創建存儲過程與存儲函數 127
9.1.1 創建存儲過程 127
實例:創建一個統計指定圖書借閱次數的存儲過程
9.1.2 創建存儲函數 129
實例:創建一個統計圖書借閱次數的存儲函數
9.1.3 變量的應用 130
實例:演示局部變量的有效范圍
實例:會話(全局)變量的舉例
9.1.4 光標的運用 133
9.2 存儲過程和存儲函數的調用 134
9.2.1 調用存儲過程 134
實例:調用統計圖書借閱次數的存儲過程
9.2.2 調用存儲函數 135
實例:調用統計圖書借閱次數的存儲函數
9.3 查看存儲過程和函數 136
9.3.1 SHOW STATUS語句 136
9.3.2 SHOW CREATE語句 136
實例:查詢指定名稱的存儲過程
9.4 修改存儲過程和函數 137
實例:修改存儲過程
9.5 刪除存儲過程和函數 138
實例:刪除統計圖書借閱次數的存儲過程
實例:刪除統計圖書借閱次數的存儲函數
小結 138
上機指導 139
習題 140
第10章 備份與恢復 141
10.1 數據備份 142
10.1.1 使用mysqldump命令備份 142
實例:備份圖書館管理系統的數據庫
實例:備份db_library和db_library_gbk數據庫
實例:備份所有數據庫
10.1.2 直接復制整個數據庫目錄 145
10.1.3 使用mysqlhotcopy工具快速備份 145
10.2 數據恢復 146
10.2.1 使用mysql命令還原 146
實例:還原已經備份的圖書館管理系統的數據庫
10.2.2 直接復制到數據庫目錄 147
10.3 數據庫遷移 147
10.3.1 MySQL數據庫之間的遷移 147
10.3.2 不同數據庫之間的遷移 148
10.4 表的導出和導入 148
10.4.1 用SELECT…INTO OUTFILE導出文本文件 148
實例:使用SELECT…INTO OUTFILE導出圖書館管理系統的圖書表的記錄
10.4.2 用mysqldump命令導出文本文件 150
實例:使用mysqldump命令導出圖書館管理系統的圖書表的記錄
10.4.3 用mysql命令導出文本文件 152
實例:使用mysql命令導出圖書館管理系統的圖書表的記錄
小結 153
上機指導 153
習題 155
第11章 MySQL性能優化 156
11.1 優化概述 157
11.1.1 分析MySQL數據庫的性能 157
11.1.2 通過profile工具分析語句消耗的性能 157
11.2 優化查詢 158
11.2.1 分析查詢語句 159
實例:使用EXPLAIN語句分析一個查詢語句
11.2.2 索引對查詢速度的影響 160
實例:舉例分析索引對查詢速度的影響
11.2.3 使用索引查詢 161
實例:舉例分析應用LIKE關鍵字優化索引查詢
實例:通過EXPLAIN分析使用OR關鍵字的查詢
11.3 優化數據庫結構 162
11.3.1 將字段很多的表分解成多個表 163
實例:將學生表分解為學生表和備注表
11.3.2 增加中間表 163
實例:創建包含學生表常用信息表中間表
11.3.3 優化插入記錄的速度 164
11.3.4 分析表、檢查表和優化表 165
11.4 優化多表查詢 166
實例:演示優化多表查詢
11.5 優化表設計 167
小結 168
上機指導 168
習題 169
第12章 事務與鎖機制 170
12.1 事務機制 171
12.1.1 事務的概念 171
12.1.2 事務機制的必要性 171
實例:模擬銀行轉賬驗證事務的必要性
12.1.3 關閉MySQL自動提交 173
12.1.4 事務回滾 174
實例:演示事務回滾
12.1.5 事務提交 175
12.1.6 MySQL中的事務 176
實例:實現出錯時回滾否則提交事務
12.1.7 回退點 178
實例:應用回退點實現部分撤銷
12.2 鎖機制 179
12.2.1 MySQL鎖機制的基本知識 180
12.2.2 MyISAM表的表級鎖 181
實例:以讀方式鎖定用戶數據表
實例:以寫方式鎖定用戶表
12.2.3 InnoDB表的行級鎖 184
實例:通過事務實現延長行級鎖的生命周期
12.2.4 死鎖的概念與避免 186
12.3 事務的隔離級別 186
12.3.1 事務的隔離級別與并發問題 186
12.3.2 設置事務的隔離級別 187
小結 187
上機指導 188
習題 190
第13章 綜合開發案例——圖書館管理系統 191
13.1 開發背景 192
13.2 系統分析 192
13.2.1 需求分析 192
13.2.2 可行性研究 192
13.3 JSP預備知識 193
13.3.1 JSP概述 193
13.3.2 JSP的開發及運行環境 194
13.3.3 JSP頁面的基本構成 195
13.4 系統設計 195
13.4.1 系統目標 195
13.4.2 系統功能結構 196
13.4.3 系統流程圖 196
13.4.4 開發環境 197
13.4.5 文件夾組織結構 197
13.5 系統預覽 197
13.6 數據庫設計 199
13.6.1 實體圖設計 199
13.6.2 E-R圖設計 201
13.6.3 數據庫邏輯結構設計 201
13.7 公共模塊設計 204
13.7.1 數據庫連接及操作類的編寫 205
13.7.2 字符串處理類的編寫 207
13.7.3 配置解決中文亂碼的過濾器 207
13.8 主界面設計 208
13.8.1 主界面概述 208
13.8.2 主界面的實現過程 209
13.9 管理員模塊設計 210
13.9.1 管理員模塊概述 210
13.9.2 編寫管理員模塊的實體類和Servlet控制類 210
13.9.3 系統登錄的實現過程 212
13.9.4 查看管理員的實現過程 215
13.9.5 添加管理員的實現過程 218
13.9.6 設置管理員權限的實現過程 221
13.9.7 刪除管理員的實現過程 224
13.10 圖書借還模塊設計 225
13.10.1 圖書借還模塊概述 225
13.10.2 編寫圖書借還模塊的實體類和Servlet控制類 226
13.10.3 圖書借閱的實現過程 227
13.10.4 圖書續借的實現過程 231
13.10.5 圖書歸還的實現過程 234
13.10.6 圖書借閱查詢的實現過程 235
小結 239
附錄 實驗 240
實驗1:安裝MySQL數據庫 241
實驗2:創建數據庫并指定使用的字符集 241
實驗3:創建和修改數據表 243
實驗4:使用SQL語句插入和更新記錄 244
實驗5:為表創建索引 246
實驗6:創建并使用約束 247
實驗7:模糊查詢數據 249
實驗8:查詢和匯總數據庫的數據 250
實驗9:創建視圖 251
實驗10:創建觸發器 252
實驗11:創建和使用存儲過程 254
實驗12:備份和恢復數據庫 255
收起全部↑