MySQL 數據庫應用案例課堂(第2版)
劉春茂
相關主題
商品描述
目錄大綱
目 錄
第1章 初識MySQL 1
1.1 數據庫的基本概念 2
1.1.1 數據庫的概念 2
1.1.2 數據表 2
1.1.3 數據類型 3
1.1.4 主鍵 3
1.2 數據庫技術構成 3
1.2.1 數據庫系統 3
1.2.2 結構化查詢語言 4
1.2.3 數據庫訪問技術 5
1.3 MySQL的特點 6
1.3.1 客戶端—服務器軟件 6
1.3.2 MySQL版本 6
1.3.3 MySQL的優勢 7
1.4 MySQL工具 7
1.4.1 mysql命令行實用程序 8
1.4.2 phpMyAdmin工具 8
1.5 疑難解惑 9
1.6 跟我學上機 10
第2章 安裝與配置 MySQL環境 11
2.1 安裝與配置MySQL 8.0 12
2.1.1 下載MySQL軟件 12
2.1.2 安裝MySQL軟件 14
2.1.3 配置MySQL軟件 16
2.2 啟動並登錄MySQL數據庫 20
2.2.1 啟動MySQL服務 20
2.2.2 登錄MySQL數據庫 22
2.2.3 配置Path變量 23
2.3 手動更改MySQL的配置 25
2.4 卸載MySQL數據庫 26
2.5 常見的錯誤代碼 27
2.6 疑難解惑 29
2.7 跟我學上機 30
第3章 操作數據庫 31
3.1 創建數據庫 32
3.2 刪除數據庫 33
3.3 數據庫存儲引擎 33
3.3.1 MySQL存儲引擎簡介 33
3.3.2 InnoDB存儲引擎 35
3.3.3 MyISAM存儲引擎 35
3.3.4 MEMORY存儲引擎 36
3.3.5 存儲引擎的選擇 36
3.4 疑難解惑 37
3.5 跟我學上機 37
第4章 創建、修改和刪除數據表 39
4.1 創建數據表 40
4.1.1 創建數據表的語法形式 40
4.1.2 使用主鍵約束 41
4.1.3 使用外鍵約束 42
4.1.4 使用非空約束 44
4.1.5 使用唯一性約束 44
4.1.6 使用默認值約束 45
4.1.7 設置表的屬性值自動增加 45
4.2 查看數據表結構 46
4.2.1 查看表基本結構語句DESCRIBE 46
4.2.2 查看表詳細結構語句SHOW CREATE TABLE 47
4.3 修改數據表 48
4.3.1 修改表名 48
4.3.2 修改字段的數據類型 48
4.3.3 修改字段名 49
4.3.4 添加字段 50
4.3.5 修改字段的排列位置 51
4.3.6 刪除字段 52
4.3.7 更改表的存儲引擎 53
4.4 刪除數據表 54
4.4.1 刪除沒有被關聯的表 54
4.4.2 刪除被其他表關聯的主表 55
4.5 疑難解惑 56
4.6 跟我學上機 56
第5章 數據類型與運算符 59
5.1 MySQL數據類型 60
5.1.1 整數類型 60
5.1.2 浮點數類型和定點數類型 61
5.1.3 日期類型與時間類型 62
5.1.4 字符串類型 66
5.1.5 二進制類型 68
5.1.6 復合數據類型 70
5.2 選擇數據類型 72
5.3 運算符及優先級 73
5.3.1 算術運算符 73
5.3.2 比較運算符 75
5.3.3 邏輯運算符 79
5.3.4 位運算符 82
5.3.5 運算符的優先級 84
5.4 疑難解惑 85
5.5 跟我學上機 85
第6章 索引的操作 87
6.1 瞭解索引 88
6.1.1 索引的含義和特點 88
6.1.2 索引的分類 88
6.1.3 索引的設計原則 89
6.2 創建數據表時創建索引 89
6.2.1 創建普通索引 90
6.2.2 創建唯一性索引 91
6.2.3 創建全文索引 92
6.2.4 創建單列索引 93
6.2.5 創建多列索引 93
6.2.6 創建空間索引 95
6.3 在已經存在的表上創建索引 95
6.3.1 創建普通索引 96
6.3.2 創建唯一性索引 97
6.3.3 創建全文索引 97
6.3.4 創建單列索引 98
6.3.5 創建多列索引 98
6.3.6 創建空間索引 99
6.4 使用ALTER TABLE語句創建索引 100
6.4.1 創建普通索引 100
6.4.2 創建唯一性索引 100
6.4.3 創建全文索引 101
6.4.4 創建單列索引 101
6.4.5 創建多列索引 101
6.4.6 創建空間索引 102
6.5 刪除索引 102
6.5.1 使用ALTER TABLE語句刪除索引 102
6.5.2 使用DROP INDEX語句刪除索引 103
6.6 疑難解惑 104
6.7 跟我學上機 104
第7章 插入、更新與刪除數據記錄 107
7.1 向數據表中插入數據 108
7.1.1 給表裡的所有字段插入數據 108
7.1.2 向表中插入數據時使用默認值 110
7.1.3 一次插入多條數據 110
7.1.4 通過復製表數據插入數據 111
7.2 更新數據表中的數據 112
7.2.1 更新表中的全部數據 113
7.2.2 更新表中指定單行數據 113
7.2.3 更新表中指定多行數據 113
7.3 刪除數據表中的數據 114
7.3.1 根據條件清除數據 114
7.3.2 清空表中的數據 115
7.4 疑難解惑 115
7.5 跟我學上機 116
第8章 視圖的操作 119
8.1 創建與修改視圖 120
8.1.1 創建視圖的語法規則 120
8.1.2 在單表上創建視圖 120
8.1.3 在多表上創建視圖 122
8.2 修改視圖 123
8.2.1 修改視圖的語法規則 123
8.2.2 使用CREATE OR REPLACE VIEW語句修改視圖 123
8.2.3 使用ALTER語句修改視圖 124
8.3 通過視圖更新數據 125
8.3.1 通過視圖插入數據 125
8.3.2 通過視圖修改數據 126
8.3.3 通過視圖刪除數據 127
8.4 查看視圖信息 128
8.4.1 使用DESCRIBE語句查看 128
8.4.2 使用SHOW TABLE STATUS語句查看 129
8.4.3 使用SHOW CREATE VIEW語句查看 130
8.4.4 在views表中查看視圖的詳細信息 130
8.5 刪除視圖 131
8.5.1 刪除視圖的語法 131
8.5.2 刪除不用的視圖 131
8.6 疑難解惑 131
8.7 跟我學上機 132
第9章 MySQL系統函數 135
9.1 數學函數 136
9.1.1 求絕對值函數ABS(x) 136
9.1.2 返回圓周率函數PI() 137
9.1.3 求餘函數MOD(x,y) 137
9.1.4 求平方根函數SQRT(x) 137
9.1.5 獲取四捨五入後的值 138
9.1.6 冪運算函數的使用 139
9.1.7 對數運算函數LOG(x)和LOG10(x) 139
9.1.8 角度與弧度相互的轉換 140
9.1.9 符號函數SIGN(x)的應用 140
9.1.10 正弦函數和餘弦函數 141
9.1.11 正切函數與餘切函數 141
9.1.12 獲取隨機數函數的應用 142
9.1.13 獲取整數函數的應用 142
9.2 字符串函數 143
9.2.1 計算字符串的字符數 144
9.2.2 計算字符串的長度 144
9.2.3 合並字符串函數 145
9.2.4 替換字符串函數 145
9.2.5 字母大小寫轉換函數 146
9.2.6 獲取指定長度的字符串的函數 146
9.2.7 填充字符串的函數 147
9.2.8 刪除字符串空格的函數 147
9.2.9 刪除指定字符串的函數 148
9.2.10 重復生成字符串的函數 148
9.2.11 空格函數和替換函數 149
9.2.12 比較字符串大小的函數 149
9.2.13 獲取子字符串的函數 150
9.2.14 匹配子字符串開始位置的函數 151
9.2.15 字符串逆序的函數 151
9.2.16 返回指定位置的字符串的函數 151
9.2.17 返回指定字符串位置的函數 152
9.2.18 返回子字符串位置的函數 152
9.2.19 選取字符串函數 153
9.3 日期和時間函數 153
9.3.1 獲取當前日期和當前時間 155
9.3.2 獲取當前日期和時間 155
9.3.3 獲取UNIX格式的時間 156
9.3.4 返回UTC日期和返回UTC時間 156
9.3.5 獲取指定日期的月份 157
9.3.6 獲取指定日期的星期數 157
9.3.7 獲取指定日期在一年中的星期周數 158
9.3.8 時間和秒鐘的相互轉換 159
9.3.9 日期和時間的加減運算 159
9.3.10 將日期和時間進行格式化 161
9.4 其他系統函數 162
9.4.1 條件判斷函數 162
9.4.2 系統信息函數 164
9.4.3 數據加密函數 167
9.5 疑難解惑 167
9.6 跟我學上機 168
第10章 精通數據的查詢 169
10.1 認識SELECT語句 170
10.2 數據的簡單查詢 170
10.2.1 查詢表中所有數據 170
10.2.2 查詢表中想要的數據 172
10.2.3 對查詢結果進行計算 173
10.2.4 為結果列取別名 173
10.2.5 在查詢時去除重復項 174
10.2.6 在查詢結果中給表取別名 174
10.2.7 使用LIMIT限制查詢數據 175
10.3 使用WHERE子句進行條件查詢 176
10.3.1 比較查詢條件的數據查詢 176
10.3.2 帶BETWEEN AND的範圍 查詢 177
10.3.3 帶IN關鍵字的查詢 178
10.3.4 帶LIKE的字符匹配查詢 179
10.3.5 未知空數據的查詢 181
10.3.6 帶AND的多條件查詢 181
10.3.7 帶OR的多條件查詢 182
10.4 操作查詢的結果 184
10.4.1 對查詢結果進行排序 184
10.4.2 對查詢結果進行分組 186
10.4.3 對分組結果過濾查詢 187
10.5 使用聚合函數進行統計查詢 187
10.5.1 使用SUM()函數求列的和 187
10.5.2 使用AVG()函數求列平均值 188
10.5.3 使用MAX()函數求列最大值 189
10.5.4 使用MIN()函數求列最小值 189
10.5.5 使用COUNT()函數統計 190
10.6 多表嵌套查詢 191
10.6.1 使用比較運算符的嵌套查詢 191
10.6.2 使用IN的嵌套查詢 193
10.6.3 使用ANY的嵌套查詢 194
10.6.4 使用ALL的嵌套查詢 194
10.6.5 使用SOME的子查詢 195
10.6.6 使用EXISTS的嵌套查詢 195
10.7 多表內連接查詢 197
10.7.1 內連接的簡單查詢 197
10.7.2 相等內連接的查詢 198
10.7.3 不等內連接的查詢 198
10.7.4 特殊的內連接查詢 199
10.7.5 帶條件的內連接查詢 200
10.8 多表外連接查詢 200
10.8.1 認識外連接查詢 200
10.8.2 左外連接的查詢 201
10.8.3 右外連接的查詢 202
10.9 使用排序函數 203
10.9.1 ROW_NUMBER()函數 203
10.9.2 RANK()函數 203
10.9.3 DENSE_RANK()函數 204
10.9.4 NTILE()函數 205
10.10 使用正則表達式查詢 205
10.10.1 查詢以特定字符或字符串 開頭的記錄 206
10.10.2 查詢以特定字符或字符串 結尾的記錄 207
10.10.3 用符號“.”來代替字符串中 的任意一個字符 207
10.10.4 匹配指定字符中的任意 一個 208
10.10.5 匹配指定字符以外的字符 209
10.10.6 匹配指定字符串 209
10.10.7 用“*”和“+”來匹配多個 字符 210
10.10.8 使用{M}或者{M,N}來指定 字符串連續出現的次數 211
10.11 疑難解惑 211
10.12 跟我學上機 212
第11章 存儲過程與存儲函數 215
11.1 創建存儲過程與存儲函數 216
11.1.1 創建存儲過程的語法格式 216
11.1.2 創建不帶參數的存儲過程 217
11.1.3 創建帶有參數的存儲過程 217
11.1.4 創建存儲函數 218
11.2 調用存儲過程與存儲函數 219
11.2.1 調用不帶參數的存儲過程 219
11.2.2 調用帶有參數的存儲過程 219
11.2.3 調用存儲函數 220
11.3 修改存儲過程與存儲函數 220
11.3.1 修改存儲過程 220
11.3.2 修改存儲函數 221
11.4 查看存儲過程與存儲函數 222
11.4.1 查看存儲過程的狀態 222
11.4.2 查看存儲過程的信息 223
11.4.3 通過表查看存儲過程 224
11.4.4 查看存儲函數的信息 225
11.5 刪除存儲過程 227
11.6 刪除存儲函數 228
11.7 疑難解惑 228
11.8 跟我學上機 228
第12章 MySQL觸發器 231
12.1 瞭解觸發器 232
12.2 創建觸發器 232
12.2.1 創建一條執行語句的觸發器 232
12.2.2 創建多個執行語句的觸發器 234
12.3 查看觸發器 235
12.3.1 使用SHOW TRIGGERS語句 查看 235
12.3.2 使用INFORMATION_SCHEMA 語句查看 236
12.4 刪除觸發器 237
12.5 疑難解惑 238
12.6 跟我學上機 238
第13章 MySQL用戶權限管理 241
13.1 認識權限表 242
13.1.1 user表 242
13.1.2 db表 243
13.1.3 tables_priv表 243
13.1.4 columns_priv表 244
13.1.5 procs_priv表 244
13.2 用戶賬戶管理 245
13.2.1 登錄和退出MySQL服務器 245
13.2.2 創建普通用戶 246
13.2.3 刪除普通用戶 248
13.2.4 修改用戶的密碼 249
13.3 用戶權限的管理 250
13.3.1 認識用戶權限 250
13.3.2 授予用戶權限 251
13.3.3 查看用戶權限 251
13.3.4 收回用戶權限 252
13.4 用戶角色的管理 253
13.4.1 創建角色 253
13.4.2 給角色授權 254
13.4.3 刪除角色 254
13.5 疑難解惑 255
13.6 跟我學上機 256
第14章 數據備份與還原 257
14.1 數據的備份 258
14.1.1 使用mysqldump命令備份 258
14.1.2 使用mysqlhotcopy命令快速 備份 263
14.1.3 直接復制整個數據庫目錄 263
14.2 數據的還原 264
14.2.1 使用mysql命令還原 264
14.2.2 使用mysqlhotcopy快速還原 265
14.2.3 直接復制到數據庫目錄 265
14.3 數據庫的遷移 265
14.3.1 相同版本之間的遷移 265
14.3.2 不同版本之間的遷移 266
14.3.3 不同數據庫之間的遷移 266
14.4 數據表的導出和導入 267
14.4.1 使用mysql命令導出 267
14.4.2 使用mysqldump命令導出 269
14.4.3 使用SELECT…INTO OUTFILE 語句導出 272
14.4.4 使用LOAD DATA INFILE語句 導入 275
14.5 疑難解惑 277
14.6 跟我學上機 277
第15章 管理MySQL日誌 279
15.1 認識日誌 280
15.2 錯誤日誌 280
15.2.1 啟動錯誤日誌 280
15.2.2 查看錯誤日誌 280
15.2.3 刪除錯誤日誌 281
15.3 二進制日誌 282
15.3.1 啟動二進制日誌 282
15.3.2 查看二進制日誌 283
15.3.3 刪除二進制日誌 284
15.4 通用查詢日誌 285
15.4.1 啟動通用查詢日誌 285
15.4.2 查看通用查詢日誌 286
15.4.3 刪除通用查詢日誌 286
15.5 慢查詢日誌 286
15.5.1 啟動慢查詢日誌 286
15.5.2 查看慢查詢日誌 287
15.5.3 刪除慢查詢日誌 288
15.6 疑難解惑 288
15.7 跟我學上機 288
第16章 MySQL的性能優化 291
16.1 認識MySQL的性能優化 292
16.2 查詢速度的優化 293
16.2.1 分析查詢語句 293
16.2.2 使用索引優化查詢 296
16.2.3 優化子查詢 297
16.3 數據庫結構的優化 297
16.3.1 通過分解表優化 297
16.3.2 通過中間表優化 298
16.3.3 通過冗餘字段優化 299
16.3.4 優化插入記錄的速度 300
16.3.5 分析表、檢查表和優化表 301
16.4 MySQL服務器的優化 303
16.4.1 MySQL服務器硬件的優化 303
16.4.2 MySQL參數的優化 303
16.5 疑難解惑 304
16.6 跟我學上機 305
第17章 使用軟件管理 MySQL 數據庫 307
17.1 搭建PHP 8+MySQL 8集成開發 環境 308
17.2 啟動phpMyAdmin管理程序 310
17.3 創建數據庫和數據表 311
17.4 MySQL數據庫的基本操作 313
17.4.1 創建數據庫 313
17.4.2 查看數據庫 314
17.4.3 刪除數據庫 315
17.5 MySQL數據表的基本操作 315
17.5.1 創建數據表 315
17.5.2 查看數據表 316
17.5.3 修改數據表 317
17.5.4 刪除數據表 317
17.6 MySQL語句的操作 318
17.6.1 插入記錄 318
17.6.2 查詢記錄 318
17.6.3 修改記錄 320
17.6.4 刪除記錄 320
17.7 為MySQL管理賬號加上密碼 320
17.8 MySQL數據庫的備份與還原 322
17.8.1 對數據庫進行備份 322
17.8.2 對數據庫進行還原 322
17.9 疑難解惑 323
17.10 跟我學上機 323
第18章 PHP操作MySQL數據庫 325
18.1 PHP訪問MySQL數據庫的步驟 326
18.2 操作MySQL數據庫的函數 326
18.2.1 連接MySQL服務器 326
18.2.2 選擇數據庫 327
18.2.3 創建數據庫 328
18.2.4 創建數據表 329
18.2.5 添加一條數據記錄 331
18.2.6 一次插入多條數據 332
18.2.7 讀取數據 333
18.2.8 釋放資源 335
18.2.9 關閉連接 335
18.3 管理MySQL數據庫中的數據 335
18.3.1 添加商品信息 335
18.3.2 查詢商品信息 337
18.4 疑難解惑 340
18.5 跟我學上機 340
第19章 設計論壇管理系統數據庫 341
19.1 系統概述 342
19.2 系統功能 342
19.3 數據庫設計和實現 343
19.3.1 設計方案圖表 343
19.3.2 設計表 345
19.3.3 設計索引 348
19.3.4 設計視圖 349
19.3.5 設計觸發器 349
第20章 新聞發布系統數據庫設計 351
20.1 系統概述 352
20.2 系統功能 352
20.3 數據庫設計和實現 353
20.3.1 設計表 353
20.3.2 設計索引 358
20.3.3 設計視圖 358
20.3.4 設計觸發器 359
第21章 開發網上訂餐系統 361
21.1 系統功能描述 362
21.2 系統功能分析和設計數據庫 362
21.2.1 系統功能分析 363
21.2.2 數據流程和數據庫 363
21.3 代碼的具體實現 366
21.4 程序運行 375