第 1章初識 MySQL .... 1
1.1 數據庫基礎 . 1
1.1.1 什么是數據庫 1
1.1.2 表 .... 2
1.1.3 數據類型 2
1.1.4 主鍵 2
1.2 數據庫技術構成 . 3
1.2.1 數據庫系統 .... 3
1.2.2 SQL語言 4
1.2.3 數據庫訪問接口 .... 5
1.3 什么是 MySQL ...6
1.3.1 客戶機-服務器軟件....... 6
1.3.2 MySQL版本 .. 7
1.3.3 MySQL的優勢 ...... 7
1.3.4 MySQL 5.6的新功能 .... 8
1.4 MySQL工具 ....... 9
1.4.1 MySQL命令行實用程序 ...... 9
1.4.2 MySQL Workbench ..... 10
1.5 如何學習 MySQL ..... 10
第 2章 MySQL的安裝與配置.... 12
2.1 Windows平臺下安裝與配置 MySQL 5.6....... 12
2.1.1 安裝 MySQL 5.6 .. 12
2.1.2 配置 MySQL 5.6 .. 18
2.2 啟動服務并登錄 MySQL數據庫 .... 23
2.2.1 啟動 MySQL服務 ....... 24
2.2.2 登錄 MySQL數據庫 ... 25
2.2.3 配置 Path變量 ..... 28
2.3 MySQL常用圖形管理工具 ..... 30
2.4 專家點撥 ... 31
2.5 經典習題 ... 32
第3章 數據庫的基本操作...... 33
3.1 創建數據庫 ....... 33
3.2 刪除數據庫 ....... 35
3.3 數據庫存儲引擎 ....... 35
3.3.1 MySQL存儲引擎簡介 35
3.3.2 InnoDB存儲引擎 37
3.3.3 MyISAM存儲引擎...... 38
3.3.4 MEMORY存儲引擎 ... 39
3.3.5 存儲引擎的選擇 .. 39
3.4 綜合案例——數據庫的創建和刪除 ....... 40
3.5 專家點撥 ... 42
3.6 經典習題 ... 42
第 4章數據表的基本操作.. 43
4.1 創建數據表 ....... 43
4.1.1 創建表的語法形式 ...... 43
4.1.2 使用主鍵約束 ...... 45
4.1.3 使用外鍵約束 ...... 46
4.1.4 使用非空約束 ...... 47
4.1.5 使用唯一性約束 .. 48
4.1.6 使用默認約束 ...... 49
4.1.7 設置表的屬性值自動增加 .. 49
4.2 查看數據表結構 ....... 50
4.2.1 查看表基本結構語句 DESCRIBE...... 50
4.2.2 查看表詳細結構語句 SHOW CREATE TABLE....... 51
4.3 修改數據表 ....... 52
4.3.1 修改表名 ...... 53
4.3.2 修改字段的數據類型 .. 53
4.3.3 修改字段名 .. 54
4.3.4 添加字段 ...... 55
4.3.5 刪除字段 ...... 58
4.3.6 修改字段的排列位置 .. 59
4.3.7 更改表的存儲引擎 ...... 60
4.3.8 刪除表的外鍵約束 ...... 61
4.4 刪除數據表 ....... 62
4.4.1 刪除沒有被關聯的表 .. 63
4.4.2 刪除被其他表關聯的主表 .. 63
4.5 綜合案例——數據表的基本操作 ... 65
4.6 專家點撥 ... 73
4.7 經典習題 ... 74
第5章 數據類型和運算符..... 76
5.1 MySQL數據類型介紹 ..... 76
5.1.1 整數類型 ...... 76
5.1.2 浮點數類型和定點數類型 .. 78
5.1.3 日期與時間類型 .. 80
5.1.4 文本字符串類型 .. 92
5.1.5 二進制字符串類型 ...... 97
5.2 如何選擇數據類型 ... 99
5.3 常見運算符介紹 ..... 101
5.3.1 運算符概述 101
5.3.2 算術運算符 102
5.3.3 比較運算符 103
5.3.4 邏輯運算符 111
5.3.5 位運算符 .... 115
5.3.6 運算符的優先級 118
5.4 綜合案例——運算符的使用 . 118
5.5 專家點撥 . 121
5.6 經典習題 . 122
第 6章 MySQL函數 123
6.1 MySQL函數簡介 ... 123
6.2 數學函數 . 124
6.2.1 絕對值函數 ABS(x)和返回圓周率的函數 PI() ....... 124
6.2.2 平方根函數 SQRT(x)和求余函數 MOD(x,y) .. 124
6.2.3 獲取整數的函數 CEIL(x)、CEILING(x)和 FLOOR(x) .. 125
6.2.4 獲取隨機數的函數 RAND()和 RAND(x) 125
6.2.5 函數 ROUND(x)、ROUND(x,y)和 TRUNCATE(x,y) .... 126
6.2.6 符號函數 SIGN(x) ..... 127
6.2.7 冪運算函數 POW(x,y)、POWER(x,y)和 EXP(x).... 128
6.2.8 對數運算函數 LOG(x)和 LOG10(x) 128
6.2.9 角度與弧度相互轉換的函數 RADIANS(x)和 DEGREES(x). 129
6.2.10 正弦函數 SIN(x)和反正弦函數 ASIN(x)....... 129
6.2.11 余弦函數 COS(x)和反余弦函數 ACOS(x) .... 130
6.2.12 正切函數、反正切函數和余切函數 ...... 130
6.3 字符串函數 ..... 131
6.3.1 計算字符串字符數的函數和字符串長度的函數 .... 131
6.3.2 合并字符串函數 CONCAT(s1,s2,…)、CONCAT_WS(x,s1,s2,…) 132
6.3.3 替換字符串的函數 INSERT(s1,x,len,s2) . 133
6.3.4 字母大小寫轉換函數 133
6.3.5 獲取指定長度的字符串的函數 LEFT(s,n)和 RIGHT(s,n)...... 134
6.3.6 填充字符串的函數 LPAD(s1,len,s2)和 RPAD(s1,len,s2) 134
6.3.7 刪除空格的函數 LTRIM(s)、RTRIM(s)和 TRIM(s) ...... 135
6.3.8 刪除指定字符串的函數 TRIM(s1 FROM s).... 136
6.3.9 重復生成字符串的函數 REPEAT(s,n)..... 136
6.3.10 空格函數 SPACE(n)和替換函數 REPLACE(s,s1,s2).... 137
6.3.11 比較字符串大小的函數 STRCMP(s1,s2)....... 137
6.3.12 獲取子串的函數 SUBSTRING(s,n,len)和 MID(s,n,len) 138
6.3.13 匹配子串開始位置的函數 ...... 139
6.3.14 字符串逆序的函數 REVERSE(s) ... 139
6.3.15 返回指定位置的字符串的函數 ...... 139
6.3.16 返回指定字符串位置的函數 FIELD(s,s1,s2,…) ... 140
6.3.17 返回子串位置的函數 FIND_IN_SET(s1,s2).. 140
6.3.18 選取字符串的函數 MAKE_SET(x,s1,s2,…) . 141
6.4 日期和時間函數 ..... 141
6.4.1 獲取當前日期的函數和獲取當前時間的函數 141
6.4.2 獲取當前日期和時間的函數 .... 142
6.4.3 UNIX時間戳函數 ..... 142
6.4.4 返回 UTC日期的函數和返回 UTC時間的函數 .... 143
6.4.5 獲取月份的函數 MONTH(date)和 MONTHNAME(date) ...... 144
6.4.6 獲取星期的函數 DAYNAME(d)、DAYOFWEEK(d)和 WEEKDAY(d)...... 144
6.4.7 獲取星期數的函數 WEEK(d)和 WEEKOFYEAR(d)...... 145
6.4.8 獲取天數的函數 DAYOFYEAR(d)和 DAYOFMONTH(d).... 146
6.4.9 獲取年份、季度、小時、分鐘和秒鐘的函數 147
6.4.10 獲取日期的指定值的函數 EXTRACT(type FROM date) ..... 148
6.4.11 時間和秒鐘轉換的函數 .. 148
6.4.12 計算日期和時間的函數 .. 149
6.4.13 將日期和時間格式化的函數 .. 151
6.5 條件判斷函數 . 154
6.5.1 IF(expr,v1,v2)函數..... 154
6.5.2 IFNULL(v1,v2)函數 .. 155
6.5.3 CASE函數. 155
6.6 系統信息函數 . 156
6.6.1 獲取 MySQL版本號、連接數和數據庫名的函數. 156
6.6.2 獲取用戶名的函數 .... 158
6.6.3 獲取字符串的字符集和排序方式的函數 159
6.6.4 獲取最后一個自動生成的 ID值的函數.. 159
6.7 加密函數 . 161
6.7.1 加密函數 PASSWORD(str)....... 161
6.7.2 加密函數 MD5(str) .... 162
6.7.3 加密函數 ENCODE(str,pswd_str)..... 162
6.7.4 解密函數 DECODE(crypt_str,pswd_str)... 163
6.8 其他函數 . 163
6.8.1 格式化函數 FORMAT(x,n)....... 163
6.8.2 不同進制的數字進行轉換的函數 .... 164
6.8.3 IP地址與數字相互轉換的函數 164
6.8.4 加鎖函數和解鎖函數 165
6.8.5 重復執行指定操作的函數 166
6.8.6 改變字符集的函數 .... 166
6.8.7 改變數據類型的函數 167
6.9 綜合案例——MySQL函數的使用 ....... 167
6.10 專家點撥 ....... 171
6.11 經典習題 ....... 172
第 7章查詢數據 ...... 173
7.1 基本查詢語句 . 173
7.2 單表查詢 . 175
7.2.1 查詢所有字段 .... 176
7.2.2 查詢指定字段 .... 177
7.2.3 查詢指定記錄 .... 178
7.2.4 帶 IN關鍵字的查詢.. 180
7.2.5 帶 BETWEEN AND的范圍查詢 ..... 182
7.2.6 帶 LIKE的字符匹配查詢 . 183
7.2.7 查詢空值 .... 185
7.2.8 帶 AND的多條件查詢 ..... 186
7.2.9 帶 OR的多條件查詢. 187
7.2.10 查詢結果不重復 ...... 188
7.2.11 對查詢結果排序 ...... 189
7.2.12 分組查詢 .. 193
7.2.13 使用 LIMIT限制查詢結果的數量 . 198
7.3 使用集合函數查詢 . 199
7.3.1 COUNT()函數.... 200
7.3.2 SUM()函數. 201
7.3.3 AVG()函數. 202
7.3.4 MAX()函數 203
7.3.5 MIN()函數.. 204
7.4 連接查詢 . 205
7.4.1 內連接查詢 205
7.4.2 外連接查詢 208
7.4.3 復合條件連接查詢 .... 210
7.5 子查詢 ..... 211
7.5.1 帶 ANY、SOME關鍵字的子查詢 .. 212
7.5.2 帶 ALL關鍵字的子查詢 .. 212
7.5.3 帶 EXISTS關鍵字的子查詢..... 213
7.5.4 帶 IN關鍵字的子查詢...... 214
7.5.5 帶比較運算符的子查詢 .... 216
7.6 合并查詢結果 . 217
7.7 為表和字段取別名 . 220
7.7.1 為表取別名 220
7.7.2 為字段取別名 .... 222
7.8 使用正則表達式查詢 ..... 223
7.8.1 查詢以特定字符或字符串開頭的記錄 .... 224
7.8.2 查詢以特定字符或字符串結尾的記錄 .... 225
7.8.3 用符號"."來替代字符串中的任意一個字符.... 225
7.8.4 使用"*"和"+"來匹配多個字符 . 226
7.8.5 匹配指定字符串 226
7.8.6 匹配指定字符中的任意一個 .... 228
7.8.7 匹配指定字符以外的字符 228
7.8.8 使用{n,}或者{n,m}來指定字符串連續出現的次數 ....... 229
7.9 綜合案例——數據表查詢操作 ..... 230
7.10 專家點撥 ....... 238
7.11 經典習題 ....... 239
第 8章插入、更新與刪除數據 240
8.1 插入數據 . 240
8.1.1 為表的所有字段插入數據 240
8.1.2 為表的指定字段插入數據 242
8.1.3 同時插入多條記錄 .... 244
8.1.4 將查詢結果插入到表中 .... 246
8.2 更新數據 . 247
8.3 刪除數據 . 249
8.4 綜合案例——記錄的插入、更新和刪除 ..... 251
8.5 專家點撥 . 256
8.6 經典習題 . 257
第 9章索引.. 258
9.1 索引簡介 . 258
9.1.1 索引的含義和特點 .... 258
9.1.2 索引的分類 259
9.1.3 索引的設計原則 260
9.2 創建索引 . 260
9.2.1 創建表的時候創建索引 .... 261
9.2.2 在已經存在的表上創建索引 .... 266
9.3 刪除索引 . 273
9.4 綜合案例——創建索引 . 275
9.5 專家點撥 . 278
9.6 經典習題 . 278
第 10章存儲過程和函數 . 280
10.1 創建存儲過程和函數 ... 280
10.1.1 創建存儲過程 .. 281
10.1.2 創建存儲函數 .. 283
10.1.3 變量的使用 ...... 284
10.1.4 定義條件和處理程序 ...... 285
10.1.5 光標的使用 ...... 288
10.1.6 流程控制的使用 ...... 289
10.2 調用存儲過程和函數 ... 294
10.2.1 調用存儲過程 .. 294
10.2.2 調用存儲函數 .. 295
10.3 查看存儲過程和函數 ... 295
10.3.1 使用 SHOW STATUS語句查看存儲過程和函數的狀態 .... 295
10.3.2 使用 SHOW CREATE語句查看存儲過程和函數的定義.... 296
10.3.3 從 information_schema.Routines表中查看存儲過程和函數的信息.... 297
10.4 修改存儲過程和函數 ... 298
10.5 刪除存儲過程和函數 ... 300
10.6 綜合案例——創建存儲過程和函數 ... 301
10.7 專家點撥 ....... 304
10.8 經典習題 ....... 305
第 11章視圖 .. 306
11.1 視圖概述 ....... 306
11.1.1 視圖的含義 ...... 306
11.1.2 視圖的作用 ...... 307
11.2 創建視圖 ....... 308
11.2.1 創建視圖的語法形式 ...... 308
11.2.2 在單表上創建視圖 .. 309
11.2.3 在多表上創建視圖 .. 310
11.3 查看視圖 ....... 311
11.3.1 使用 DESCRIBE語句查看視圖基本信息..... 311
11.3.2 使用 SHOW TABLE STATUS語句查看視圖基本信息 ...... 311
11.3.3 使用 SHOW CREATE VIEW語句查看視圖詳細信息 313
11.3.4 在 views表中查看視圖詳細信息... 313
11.4 修改視圖 ....... 315
11.4.1 使用 CREATE OR REPLACE VIEW語句修改視圖.... 315
11.4.2 使用 ALTER語句修改視圖 ... 316
11.5 更新視圖 ....... 317
11.6 刪除視圖 ....... 319
11.7 綜合案例——視圖應用 ....... 320
11.8 專家點撥 ....... 328
11.9 經典習題 ....... 329
第 12章 MySQL觸發器... 330
12.1 創建觸發器 ... 330
12.1.1 創建只有一個執行語句的觸發器 .. 331
12.1.2 創建有多個執行語句的觸發器 ...... 332
12.2 查看觸發器 ... 334
12.2.1 SHOW TRIGGERS語句查看觸發器信息..... 334
12.2.2 在 triggers表中查看觸發器信息.... 336
12.3 觸發器的使用 ....... 337
12.4 刪除觸發器 ... 338
12.5 綜合案例——觸發器的使用 ....... 339
12.6 專家點撥 ....... 341
12.7 經典習題 ....... 341
第 13章 MySQL用戶管理 ....... 342
13.1 權限表 ....... 342
13.1.1 user表....... 342
13.1.2 db表和 host表 345
13.1.3 tables_priv表和 columns_priv表 ... 347
13.1.4 procs_priv表 .... 348
13.2 賬戶管理 ....... 348
13.2.1 登錄和退出 MySQL服務器 ... 349
13.2.2 新建普通用戶 .. 350
13.2.3 刪除普通用戶 .. 354
13.2.4 root用戶修改自己的密碼....... 355
13.2.5 root用戶修改普通用戶密碼... 357
13.2.6 普通用戶修改密碼 .. 358
13.2.7 root用戶密碼丟失的解決辦法....... 359
13.3 權限管理 ....... 360
13.3.1 MySQL的各種權限 360
13.3.2 授權 .. 362
13.3.3 收回權限 .. 364
13.3.4 查看權限 .. 365
13.4 訪問控制 ....... 366
13.4.1 連接核實階段 .. 367
13.4.2 請求核實階段 .. 367
13.5 綜合案例——綜合管理用戶權限 ....... 368
13.6 專家點撥 ....... 371
13.7 經典習題 ....... 372
第 14章數據備份與恢復 . 373
14.1 數據備份 ....... 373
14.1.1 使用 MySQLdump命令備份.. 373
14.1.2 直接復制整個數據庫目錄 ...... 380
14.1.3 使用 MySQLhotcopy工具快速備份 ...... 380
14.2 數據恢復 ....... 381
14.2.1 使用 MySQL命令恢復 ... 381
14.2.2 直接復制到數據庫目錄 .. 382
14.2.3 MySQLhotcopy快速恢復 ....... 382
14.3 數據庫遷移 ... 383
14.3.1 相同版本的 MySQL數據庫之間的遷移 ....... 383
14.3.2 不同版本的 MySQL數據庫之間的遷移 ....... 383
14.3.3 不同數據庫之間的遷移 .. 384
14.4 表的導出和導入 ... 384
14.4.1 使用 SELECTI…NTO OUTFILE導出文本文件 .. 384
14.4.2 使用 MySQLdump命令導出文本文件.. 387
14.4.3 使用 MySQL命令導出文本文件 ... 390
14.4.4 使用 LOAD DATA INFILE方式導入文本文件 ... 393
14.4.5 使用 MySQLimport命令導入文本文件 395
14.5 綜合案例——數據的備份與恢復 ....... 397
14.6 專家點撥 ....... 401
14.7 經典習題 ....... 402
第 15章 MySQL日志 ...... 404
15.1 日志簡介 ....... 404
15.2 二進制日志 ... 405
15.2.1 啟動和設置二進制日志 .. 405
15.2.2 查看二進制日志 ...... 406
15.2.3 刪除二進制日志 ...... 408
15.2.4 使用二進制日志恢復數據庫 .. 410
15.2.5 暫時停止二進制日志功能 ...... 411
15.3 錯誤日志 ....... 411
15.3.1 啟動和設置錯誤日志 ...... 411
15.3.2 查看錯誤日志 .. 411
15.3.3 刪除錯誤日志 .. 412
15.4 通用查詢日志 ....... 413
15.4.1 啟動和設置通用查詢日志 ...... 413
15.4.2 查看通用查詢日志 .. 413
15.4.3 刪除通用查詢日志 .. 414
15.5 慢查詢日志 ... 415
15.5.1 啟動和設置慢查詢日志 .. 415
15.5.2 查看慢查詢日志 ...... 415
15.5.3 刪除慢查詢日志 ...... 416
15.6 綜合案例——MySQL日志的綜合管理 ..... 416
15.7 專家點撥 ....... 422
15.8 經典習題 ....... 423
第 16章性能優化 .... 424
16.1 優化簡介 ....... 424
16.2 優化查詢 ....... 425
16.2.1 分析查詢語句 .. 425
16.2.2 索引對查詢速度的影響 .. 429
16.2.3 使用索引查詢 .. 430
16.2.4 優化子查詢 ...... 432
16.3 優化數據庫結構 ... 433
16.3.1 將字段很多的表分解成多個表 ...... 433
16.3.2 增加中間表 ...... 434
16.3.3 增加冗余字段 .. 436
16.3.4 優化插入記錄的速度 ...... 437
16.3.5 分析表、檢查表和優化表 ...... 438
16.4 優化 MySQL服務器 .... 440
16.4.1 優化服務器硬件 ...... 440
16.4.2 優化 MySQL的參數 ....... 441
16.5 綜合案例——全面優化 MySQL服務器 .... 442
16.6 專家點撥 ....... 444
16.7 經典習題 ....... 445
第 17章 MySQL Replication.... 446
17.1 MySQL Replication概述...... 446
17.2 Windows環境下的 MySQL主從復制 447
17.2.1 復制前的準備工作 .. 447
17.2.2 Windows環境下實現主從復制...... 448
17.2.3 Windows環境下主從復制測試...... 455
17.3 Linux環境下的 MySQL復制 ..... 456
17.3.1 下載并安裝 MySQL 5.6 .. 456
17.3.2 單機主從復制前的準備工作 .. 458
17.3.3 MySQLd_multi實現單機主從復制 462
17.3.4 不同服務器之間實現主從復制 ...... 469
17.3.5 MySQL 主要復制啟動選項 ... 471
17.3.6 指定復制的數據庫或者表 ...... 472
17.4 查看 Slave的復制進度 479
17.5 日常管理和維護 ... 481
17.5.1 了解服務器的狀態 .. 481
17.5.2 服務器復制出錯的原因 .. 482
17.6 切換主從服務器 ... 485
17.7 專家點撥 ....... 488
17.8 經典習題 ....... 490
第 18章 MySQL Workbench 5.2的使用.. 491
18.1 MySQL Workbench簡介 ..... 491
18.1.1 MySQL Workbench 的概述 ... 491
18.1.2 MySQL Workbench 的優勢 ... 492
18.1.3 MySQL Workbench 的安裝 ... 492
18.2 SQL Development的基本操作 .... 494
18.2.1 創建數據庫連接 ...... 494
18.2.2 創建新的數據庫 ...... 495
18.2.3 創建和刪除新的數據表 .. 497
18.2.4 添加、修改表記錄 .. 500
18.2.5 查詢表記錄 ...... 501
18.2.6 修改表結構 ...... 502
18.3 Data Modeling的基本操作 .. 503
18.3.1 建立 ER模型 ... 503
18.3.2 導入 ER模型 ... 508
18.4 Server Administration的基本操作 ...... 510
18.4.1 管理 MySQL用戶 ... 510
18.4.2 備份 MySQL數據庫 ....... 513
18.4.3 恢復 MySQL數據庫 ....... 516
18.5 專家點撥 . 517
18.6 經典習題 . 518
第 19章 MySQL Cluster .. 519
19.1 MySQL Cluster概述 .... 519
19.1.1 MySQL Cluster基本概念 ....... 519
19.1.2 理解 MySQL Cluster節點 ...... 520
19.2 Linux環境下 MySQL Cluster安裝和配置. 521
19.2.1 安裝 MySQL Cluster 7.2.8軟件 ..... 524
19.2.2 管理節點配置步驟 .. 528
19.2.3 配置 SQL節點和數據節點..... 529
19.3 管理 MySQL Cluster .... 530
19.3.1 Cluster的啟動.. 530
19.3.2 Cluster的測試.. 532
19.3.3 Cluster的關閉.. 534
19.4 維護 MySQL Cluster .... 535
19.4.1 Cluster的日志管理.. 537
19.4.2 Cluster的聯機備份.. 538
19.4.3 Cluster的數據恢復.. 539
19.5 Wndows操作系統中配置 Cluster集群 ...... 540
19.6 專家點撥 ....... 546
19.7 經典習題 ....... 547
第 20章 PHP操作 MySQL數據庫 .. 548
20.1 PHP訪問 MySQL數據庫的一般步驟 548
20.2 連接數據庫前的準備工作 ... 549
20.3 PHP操作 MySQL數據庫的函數 550
20.3.1 通過 MySQLi類庫訪問 MySQL數據庫....... 550
20.3.2 使用 MySQLi_connect()函數連接 MySQL服務器....... 552
20.3.3 使用 MySQLi_select_db()函數選擇數據庫文件 ... 552
20.3.4 使用 MySQLi_query()函數執行 SQL語句 ... 553
20.3.5 使用 MySQLi_fetch_assoc ()函數從數組結果集中獲取信息 ...... 553
20.3.6 使用 MySQLi_fetch_object()函數從結果中獲取一行作為對象 .. 553
20.3.7 使用 MySQLi_num_rows()函數獲取查詢結果集中的記錄數 ..... 554
20.3.8 使用 MySQLi_free_result()函數釋放資源 ..... 554
20.3.9 使用 MySQLi_close()函數關閉連接 ...... 554
20.4 綜合實例 1——使用 insert語句動態添加用戶信息 ....... 555
20.5 綜合實例 2——使用 select語句查詢數據信息 ....... 558
20.6 疑難解惑 ....... 560
第 21章新聞發布系統數據庫設計... 561
21.1 系統概述 ....... 561
21.2 系統功能 ....... 562
21.3 數據庫設計和實現 ....... 563
21.3.1 設計表 ...... 563
21.3.2 設計索引 .. 567
21.3.3 設計視圖 .. 568
21.3.4 設計觸發器 ...... 569
21.4 小結 ....... 570
第 22章論壇管理系統數據庫設計... 571
22.1 系統概述 ....... 571
22.2 系統功能 ....... 572
22.3 數據庫設計和實現 ....... 573
22.3.1 設計方案圖表 .. 573
22.3.2 設計表 ...... 575
22.3.3 設計索引 .. 579
22.3.4 設計視圖 .. 580
22.3.5 設計觸發器 ...... 580
22.4 小結 ....... 582