相關主題
商品描述
本書包含實用教程、習題、實訓、數據庫綜合和數據庫綜合應用開發。它以MySQL 8.x為平臺,在第4版的基礎上,實用教程部分根據不同情況進行重寫、增加、刪除和修改完善,特別是數據庫綜合實例由網上商城數據庫系統改為學生成績管理系統,既減少數據庫表對象的數量、降低了難度,有利於讀者理解和掌握,同時保留了原數據庫及其對象的綜合性,有利於提高解決問題的能力。在此基礎上,數據庫應用開發增加當前流行平臺,刪除了逐步過時的開發平臺。
目錄大綱
第一部分 實用教程 ........................................ 1
第1章 數據庫基礎 .............................................. 1
1.1 數據庫和數據庫系統 ............................ 1
1.2 數據模型 ................................................ 2
1.2.1 概念模型 .................................... 2
1.2.2 邏輯模型 .................................... 3
1.2.3 關系模型 .................................... 4
1.3 流行的數據庫及數據庫管理系統 ........ 6
1.4 MySQL簡介 .......................................... 7
習題及參考答案 ............................................. 8
第2章 MySQL安裝與運行、操作工具和
簡單操作 ................................................... 9
2.1 MySQL安裝與運行 .............................. 9
2.1.1 安裝包方式安裝 ........................ 9
2.1.2 MySQL運行和MySQL命令
執行 ......................................... 10
2.2 MySQL操作工具 ................................ 13
2.2.1 MySQL客戶端工具 ................ 13
2.2.2 MySQL圖形化界面工具 ........ 13
2.2.3 MySQL圖形化界面工具:
Navicat ..................................... 13
2.3 數據庫、表的創建及其簡單操作 ...... 16
習題及參考答案 ........................................... 18
第3章 數據類型 ................................................ 19
3.1 數值類型及實例 .................................. 19
3.1.1 整數類型 .................................. 19
3.1.2 實數類型 .................................. 20
3.1.3 位型 ......................................... 21
3.2 日期與時間類型及實例 ...................... 22
3.3 字符串類型及實例 .............................. 24
3.3.1 文本字符串類型 ...................... 24
3.3.2 字符集編碼 .............................. 26
3.3.3 字符排序規則 .......................... 28
3.3.4 二進制字符串類型 .................. 30
3.4 枚舉類型和集合類型及實例 ............... 33
3.4.1 枚舉類型 .................................. 33
3.4.2 集合類型 .................................. 33
3.5 JSON數據類型和空間數據類型及
實例 ...................................................... 35
3.5.1 JSON數據類型 ........................ 35
3.5.2 空間數據類型 .......................... 37
習題及參考答案 ........................................... 40
第4章 數據庫及表結構設計 ............................. 41
4.1 數據庫的基本操作 .............................. 41
4.1.1 系統數據庫 .............................. 41
4.1.2 數據庫的創建、修改和
刪除 .......................................... 42
4.2 創建表結構 .......................................... 42
4.2.1 表結構的創建、顯示和
刪除 .......................................... 43
4.2.2 列及其常用屬性 ...................... 44
4.2.3 數值類型屬性 .......................... 46
4.2.4 列默認值 .................................. 47
4.2.5 生成列(虛擬列) .................. 48
4.2.6 根據舊表創建新表 .................. 49
4.3 完整性約束 .......................................... 49
4.3.1 列約束 ...................................... 50
4.3.2 表約束 ...................................... 50
4.3.3 表外鍵約束 .............................. 52
4.4 修改表結構 .......................................... 55
4.4.1 添加列和刪除列 ...................... 55
4.4.2 修改列及其屬性 ...................... 56
4.4.3 添加和刪除表約束 .................. 59
習題及參考答案 ........................................... 62
MySQL實用教程(新體系)(第5版)
VI
第5章 表記錄操作 ............................................ 63
5.1 插入記錄 .............................................. 63
5.1.1 插入新記錄 .............................. 63
5.1.2 插入查詢記錄 .......................... 67
5.1.3 使用MySQL語句導入文件
數據 ......................................... 68
5.1.4 使用Navicat導入Excel/Word
文件數據 .................................. 72
5.1.5 導入圖片數據 .......................... 73
5.1.6 復制表記錄 .............................. 73
5.2 修改記錄 .............................................. 74
5.2.1 替換記錄 .................................. 75
5.2.2 更新記錄 .................................. 77
5.2.3 JSON數據類型列記錄修改 .... 80
5.2.4 空間數據類型列記錄修改 ...... 82
5.3 刪除記錄 .............................................. 82
5.3.1 刪除行 ..................................... 82
5.3.2 清空表記錄 .............................. 84
5.4 導出記錄 .............................................. 86
5.4.1 表記錄導出方式 ...................... 86
5.4.2 表記錄導出並形成文件 .......... 86
5.5 數據庫備份與恢復 .............................. 88
5.5.1 使用mysqldump備份與
恢復 ......................................... 88
5.5.2 使用日誌文件備份與恢復 ...... 90
5.5.3 文件系統和實時數據庫
備份 ......................................... 91
習題及參考答案 ........................................... 91
第6章 表空間、分區和行格式 ........................ 92
6.1 表空間 .................................................. 92
6.1.1 表空間的創建和使用 .............. 93
6.1.2 表空間中表的移動 .................. 94
6.1.3 刪除表空間 .............................. 95
6.2 分區 ...................................................... 95
6.2.1 分區簡介 .................................. 95
6.2.2 範圍分區 .................................. 96
6.2.3 列表分區 .................................. 99
6.2.4 散列分區 ................................ 101
6.2.5 鍵分區 ................................... 102
6.2.6 子分區 .................................... 103
6.2.7 分區管理 ................................ 103
6.3 行格式 ................................................ 107
習題及參考答案 ......................................... 107
第7章 運算符、表達式和系統函數 ............... 108
7.1 常量和變量 ........................................ 108
7.1.1 常量 ........................................ 108
7.1.2 變量 ........................................ 110
7.2 運算符與表達式 ................................ 113
7.2.1 賦值運算符 ............................ 113
7.2.2 算術運算符 ............................ 114
7.2.3 比較運算符 ............................ 114
7.2.4 判斷運算符 ............................ 119
7.2.5 字符串匹配 ............................ 121
7.2.6 邏輯運算符和位運算符 ........ 123
7.2.7 表達式和運算符的優先級 ..... 124
7.3 系統函數 ............................................ 126
習題及參考答案 ......................................... 127
第8章 查詢、視圖和索引 ............................... 128
8.1 查詢 .................................................... 128
8.1.1 選擇輸出項 ............................ 128
8.1.2 單數據源 ................................ 133
8.1.3 多數據源 ................................ 135
8.1.4 查詢條件:邏輯條件 ............ 139
8.1.5 查詢條件:枚舉、集合、
JSON和空間條件 .................. 143
8.1.6 查詢條件:子查詢 ................ 146
8.1.7 分組 ........................................ 151
8.1.8 分組後篩選 ............................ 153
8.1.9 輸出行排序 ............................ 155
8.1.10 輸出行限制 .......................... 156
8.1.11 多表記錄聯合 ...................... 157
8.1.12 通用表表達式 ...................... 158
8.1.13 窗口表達 .............................. 159
8.1.14 查詢準備 .............................. 161
8.1.15 單表簡單查詢 ...................... 162
8.2 視圖 .................................................... 163
8.2.1 創建視圖 ................................ 163
目錄
VII
8.2.2 查詢視圖 ................................ 164
8.2.3 更新視圖 ................................ 165
8.2.4 修改視圖 ................................ 168
8.2.5 刪除視圖 ................................ 169
8.3 索引 .................................................... 169
8.3.1 索引概述 ................................ 169
8.3.2 索引操作 ................................ 170
8.3.3 特殊數據類型索引 ................ 174
8.3.4 索引與分區查詢 .................... 174
8.3.5 索引建立原則 ........................ 175
習題及參考答案 ......................................... 177
第9章 過程式對象程序設計 .......................... 178
9.1 過程體 ................................................ 178
9.1.1 局部變量定義 ........................ 178
9.1.2 條件分支 ................................ 179
9.1.3 循環執行 ................................ 181
9.2 錯誤處理及實例 ................................ 183
9.2.1 根據錯誤自動處理 ................ 183
9.2.2 根據情況拋出信號 ................ 187
9.3 事務管理 ............................................ 189
9.3.1 事務處理 ................................ 189
9.3.2 事務隔離級 ............................ 192
9.3.3 事務的應用 ............................ 194
9.4 遊標 .................................................... 196
9.5 存儲過程 ............................................ 198
9.5.1 存儲過程的基本操作 ............ 198
9.5.2 存儲過程的應用 .................... 199
9.5.3 存儲對象的訪問控制 ............ 202
9.6 存儲函數 ............................................ 202
9.6.1 存儲函數的基本操作 ............ 202
9.6.2 存儲函數的應用 .................... 204
9.7 觸發器 ................................................ 207
9.7.1 觸發器的創建和修改 ............ 207
9.7.2 觸發器的應用 ........................ 209
9.7.3 觸發器和存儲過程的比較 .... 213
9.8 事件 .................................................... 213
9.8.1 創建事件 ................................ 213
9.8.2 修改和刪除事件 .................... 216
9.9 全局鎖、表鎖和行鎖 ........................ 217
9.9.1 全局鎖 .................................... 217
9.9.2 表鎖 ........................................ 218
9.9.3 行鎖 ........................................ 219
9.9.4 死鎖 ........................................ 222
習題及參考答案 ......................................... 223
第10章 用戶與權限 ........................................ 224
10.1 用戶管理及實例 .............................. 224
10.1.1 創建和刪除用戶 .................. 224
10.1.2 修改用戶名和密碼 .............. 226
10.2 權限控制及實例 .............................. 226
10.2.1 授予權限 .............................. 226
10.2.2 權限轉移和限制 .................. 231
10.2.3 權限撤銷 .............................. 232
10.2.4 Navicat可視化權限操作 ..... 233
10.3 角色和權限管理及實例 ................... 234
10.3.1 創建角色和分配權限 .......... 234
10.3.2 用戶角色和權限分配
實例 ...................................... 235
習題及參考答案 ......................................... 236
第二部分 實驗 .............................................. 237
第1章 數據庫基礎 ................................. 237
第2章 MySQL安裝與運行、操作
工具和簡單操作 .......................... 237
第3章 數據類型 ..................................... 238
第4章 數據庫及表結構設計 .................. 238
第5章 表記錄操作 ................................. 239
第6章 表空間、分區和行格式 .............. 240
第7章 運算符、表達式和系統函數 ...... 241
第8章 查詢、視圖和索引 ...................... 242
第9章 過程式對象程序設計 .................. 243
第10章 用戶與權限 ............................... 244
第三部分 MySQL數據庫綜合實訓 ...... 245
P0.1 實訓數據庫及其對象創建............... 245
P0.1.1 創建實訓數據庫 .................. 245
P0.1.2 創建表 .................................. 245
P0.1.3 創建表間記錄完整性 .......... 247
P0.1.4 創建觸發器 .......................... 248
MySQL實用教程(新體系)(第5版)
VIII
P0.1.5 創建存儲過程 ...................... 249
P0.2 測試數據庫對象關系的正確性 ...... 250
P0.2.1 插入學生表記錄 .................. 250
P0.2.2 插入課程表記錄 .................. 251
P0.2.3 插入成績表記錄 .................. 251
P0.2.4 觸發器功能測試 .................. 251
P0.2.5 表間記錄完整性測試 .......... 252
P0.2.6 存儲過程功能測試 .............. 252
P0.3 系統主頁和功能界面 ...................... 253
P0.3.1 系統主頁 ............................. 253
P0.3.2 “學生管理”功能界面 ...... 253
P0.3.3 “課程管理”功能界面 ...... 254
P0.3.4 “成績管理”功能界面 ...... 254
第四部分 MySQL數據庫綜合應用
實訓 .............................................. 256
實訓1 PHP/MySQL學生成績管理系統 ........ 256
P1.1 PHP開發平臺搭建 ......................... 256
P1.2 PHP開發入門 ................................. 256
P1.2.1 PHP項目的創建 ................. 256
P1.2.2 PHP項目的運行 ................. 257
P1.2.3 PHP連接MySQL ............... 258
P1.3 系統主頁設計 .................................. 259
P1.3.1 主頁 ..................................... 259
P1.3.2 導航頁面 ............................. 260
P1.4 學生管理.......................................... 261
P1.4.1 界面設計 ............................. 261
P1.4.2 功能實現 ............................. 265
P1.5 成績管理.......................................... 267
P1.5.1 界面設計 ............................. 267
P1.5.2 功能實現 ............................. 270
P1.6 課程管理.......................................... 271
實訓2 Spring Boot/MySQL學生成績管理
系統 ...................................................... 273
P2.1 Spring Boot開發環境配置 .............. 273
P2.2 系統架構及設計 .............................. 274
P2.2.1 系統架構 ............................. 274
P2.2.2 分層設計 ............................. 274
P2.3 Spring Boot程序開發 ..................... 275
P2.3.1 開發前的準備 ...................... 275
P2.3.2 持久層開發 .......................... 278
P2.3.3 業務層開發 .......................... 282
P2.3.4 表示層開發 .......................... 285
P2.3.5 運行測試 .............................. 294
實訓3 Python/MySQL學生成績管理系統 .... 297
P3.1 Python環境準備 .............................. 297
P3.1.1 構建Python環境 ................. 297
P3.1.2 安裝MySQL驅動庫 ........... 297
P3.2 Python程序開發 .............................. 298
P3.2.1 開發前的準備工作 .............. 298
P3.2.2 實現思路 .............................. 299
P3.2.3 功能代碼 .............................. 300
P3.2.4 運行效果 .............................. 303
實訓4 Android Studio/MySQL學生成績管理
系統 ....................................................... 304
P4.1 環境搭建 .......................................... 304
P4.1.1 基本原理 .............................. 304
P4.1.2 開發工具安裝 ...................... 305
P4.2 服務器端Servlet程序開發 ............. 305
P4.2.1 創建動態Web項目 ............. 305
P4.2.2 編寫Servlet程序 ................. 307
P4.2.3 打包部署 .............................. 313
P4.3 移動端Android程序開發 ............... 314
P4.3.1 創建Android工程 ............... 314
P4.3.2 設計界面 .............................. 315
P4.3.3 編寫移動端代碼 .................. 316
P4.3.4 運行測試 .............................. 321
實訓5 Qt/MySQL學生成績管理系統 ............ 325
P5.1 Qt的安裝 ......................................... 325
P5.2 編譯MySQL驅動 ........................... 325
P5.3 Qt程序的開發 ................................. 328
P5.3.1 開發前的準備 ...................... 328
P5.3.2 界面設計 .............................. 331
P5.3.3 函數、槽、變量聲明 .......... 333
P5.3.4 功能實現 .............................. 335
P5.3.5 運行效果 .............................. 341
目錄
IX
實訓6 C#+WebService/MySQL學生成績
管理系統 ............................................... 342
P6.1 C#窗體應用程序開發 ..................... 342
P6.1.1 創建項目 ............................. 342
P6.1.2 安裝MySQL的.NET驅動 .. 342
P6.1.3 界面設計 ............................. 343
P6.1.4 功能實現 .............................. 346
P6.1.5 運行效果 .............................. 351
P6.2 C#程序使用WebService .................. 351
P6.2.1 客戶端引用WebService ...... 351
P6.2.2 程序調用WebService .......... 353
附錄A 網上商城數據庫 ................................... 355
