第一部分 入 門
第1章 什么是MySQL 2
1.1 什么是數據庫 2
1.1.1 關系、數據庫系統(tǒng)、服務器和
客戶 2
1.1.2 關系數據庫系統(tǒng)與面向對象數據
庫系統(tǒng) 3
1.1.3 數據表、記錄、字段、查詢、SQL、
索引和鍵 3
1.2 MySQL 4
1.3 MySQL的不足 6
1.4 MySQL的版本編號 7
1.4.1 Alpha、Beta、Gamma、Production
(Generally Available) 8
1.4.2 按版本編號排列的MySQL功能
表 8
1.5 MySQL的許可證 10
1.5.1 GPL許可證下的權利和義務10
1.5.2 開源許可證下的MySQL軟件10
1.5.3 商用許可證下的MySQL軟件11
1.5.4 MySQL客戶軟件開發(fā)庫
(Connector/ODBC、Connector/J
等)的商用許可證 12
1.5.5 PHP項目的客戶許可證問題——
F(L)OSS特例 12
1.5.6 MySQL軟件的版本名稱 13
1.5.7 MySQL軟件的技術支持合同14
1.6 MySQL軟件的替代品 14
1.7 小結 15
第2章 測試環(huán)境 16
2.1 是Windows還是UNIX/Linux16
2.1.1 MySQL應用現狀(因特網上的
數據庫服務器) 16
2.1.2 開發(fā)環(huán)境 17
2.2 在Windows系統(tǒng)上安裝MySQL和相關
軟件 17
2.2.1 安裝Apache 2.0 18
2.2.2 安裝MySQL 5.0 19
2.2.3 安裝PHP 5.0 22
2.2.4 安裝Perl 23
2.3 在SUSE Linux 9.3系統(tǒng)上安裝MySQL
和相關軟件 25
2.3.1 安裝Apache 2、PHP 5和Perl25
2.3.2 安裝MySQL 5.0 27
2.4 在Red Hat Enterprise Linux 4系統(tǒng)上安裝
MySQL和相關軟件 29
2.4.1 安裝Apache 2 29
2.4.2 安裝MySQL 5 30
2.4.3 編譯PHP 5 30
2.4.4 安裝Perl 5.8 33
2.5 編譯MySQL軟件的開發(fā)者版本(Linux) 33
2.5.1 安裝Bitkeeper 33
2.5.2 下載MySQL軟件的開發(fā)者版本 34
2.5.3 編譯MySQL 34
2.5.4 創(chuàng)建用來管理訪問權限的mysql
數據庫 34
2.5.5 MySQL配置文件和Init-V腳本34
2.5.6 啟動MySQL服務器 35
2.6 配置Apache 35
2.6.1 配置文件 35
2.6.2 基本設置 36
2.6.3 對不同子目錄的訪問權限
(.htaccess) 37
2.7 配置PHP 39
2.8 配置MySQL 41
第3章 初級案例研究:MySQL+PHP43
3.1 概述 43
3.2 數據庫的開發(fā) 44
3.2.1 啟動mysql命令行解釋器44
3.2.2 創(chuàng)建數據庫 45
3.2.3 創(chuàng)建數據表 46
3.2.4 為什么要避簡就難 47
3.3 調查問卷 48
3.4 問卷調查結果的處理和顯示49
3.4.1 mysql界面與mysqli界面49
3.4.2 建立與數據庫的連接 49
3.4.3 對數據進行處理并把它存入
數據庫 49
3.4.4 顯示問卷調查的結果 50
3.4.5 程序代碼(results.php)51
3.4.6 最終生成的HTML代碼 52
3.5 改進意見 52
第二部分 管理工具和用戶操作界面
第4章 mysql、mysqladmin和mysqldump56
4.1 mysql 56
4.1.1 啟動mysql 57
4.1.2 mysql的命令行選項 58
4.1.3 交互式使用mysql 59
4.1.4 UNIX/Linux環(huán)境中mysql的使用
技巧 60
4.1.5 Windows環(huán)境下mysql的使用
技巧 61
4.1.6 用mysql處理SQL文件 63
4.2 mysqladmin 64
4.3 mysqldump 64
第5章 MySQL Administrator和MySQL
Query Browser 65
5.1 安裝 65
5.2 與MySQL服務器建立連接 66
5.3 MySQL Administrator 67
5.3.1 Server Information模塊(查看
服務器信息) 68
5.3.2 Service Control模塊(啟動/停止
MySQL服務器) 68
5.3.3 Startup Variables模塊(配置啟動
參數) 68
5.3.4 User Administration模塊(用戶
管理) 69
5.3.5 Server Connections模塊(查看
服務器連接信息) 71
5.3.6 Health模塊(查看系統(tǒng)負載)71
5.3.7 Server Logs模塊(查看服務器
日志) 72
5.3.8 Backup模塊(制作數據庫備份)72
5.3.9 Restore模塊(用備份恢復數
據庫) 73
5.3.10 Replication Status模塊(查看鏡像
機制的工作狀態(tài)) 74
5.3.11 Catalogs模塊(對數據庫和數據
表進行管理) 74
5.4 MySQL Query Browser 74
5.4.1 SQL命令的輸入和執(zhí)行 74
5.4.2 對SELECT結果里的數據進行
修改 76
5.4.3 SQL命令的歷史記錄和書簽77
5.4.4 一次執(zhí)行多條命令(腳本)77
5.4.5 存儲過程 77
5.4.6 MySQL Help(幫助文檔)77
第6章 phpMyAdmin 78
6.1 phpMyAdmin的安裝與配置 79
6.1.1 安裝phpMyAdmin文件 79
6.1.2 配置phpMyAdmin 79
6.1.3 config身份驗證模式 80
6.1.4 http和cookie身份驗證模式82
6.2 用戶管理,保護MySQL 84
6.2.1 保護MySQL 85
6.2.2 創(chuàng)建新用戶 86
6.3 創(chuàng)建和編輯數據庫 88
6.3.1 創(chuàng)建數據庫 88
6.3.2 編輯現有的數據表 89
6.3.3 設置外鍵規(guī)則 90
6.3.4 數據庫設計方案的匯總和存檔90
6.4 查看、插入和編輯數據 91
6.5 執(zhí)行SQL命令 92
6.6 導入和導出 93
6.6.1 數據庫備份(SQL文件)93
6.6.2 導出數據表(CSV文本文件)95
6.6.3 導入數據庫或數據表(SQL
文件) 95
6.6.4 插入數據表數據(文本文件)96
6.7 服務器管理 96
6.8 輔助功能 97
6.8.1 為phpMyAdmin創(chuàng)建數據庫97
6.8.2 SQL書簽和歷史記錄 98
6.8.3 關聯(lián)/引用關系信息的保存98
6.8.4 創(chuàng)建PDF格式的數據表關聯(lián)/
引用關系圖 100
6.8.5 格式轉換(數據列內容的另類
顯示效果) 101
第7章 Microsoft Office和OpenOffice/
StarOffice 103
7.1 安裝Connector/ODBC 103
7.2 Microsoft Access 106
7.2.1 數據表的導入和導出 107
7.2.2 數據庫轉換器:Access→MySQL
(exportsql.txt) 109
7.3 Microsoft Excel 110
7.4 安裝Connector/J 112
7.4.1 Connector/J 112
7.4.2 安裝 112
7.5 OpenOffice/StarOffice Base113
7.5.1 與MySQL數據庫建立連接113
7.5.2 Table模塊 114
7.5.3 Queries模塊 115
7.5.4 Forms模塊、Rerports模塊和
其他功能 116
7.6 OpenOffice/StarOffice的Data Source
視圖 117
7.6.1 建立數據源 118
7.6.2 數據的導入 118
第三部分 基 礎 知 識
第8章 數據庫設計概論 120
8.1 參考讀物 120
8.2 數據表類型 121
8.2.1 MyISAM數據表 121
8.2.2 InnoDB數據表 122
8.2.3 HEAP數據表 123
8.2.4 臨時數據表 124
8.2.5 其他的數據表類型 124
8.2.6 數據表文件 125
8.3 MySQL數據類型 126
8.3.1 整數(xxxINT) 126
8.3.2 定點數(DECIMAL) 127
8.3.3 日期與時間(DATE、TIME、
DATETIME、TIMESTAMP) 128
8.3.4 字符串(CHAR、VARCHAR、
xxxTEXT) 130
8.3.5 二進制數據(xxxBLOB和BIT) 133
8.3.6 選項和屬性 135
8.4 數據庫設計技巧 135
8.4.1 數據庫設計要求 135
8.4.2 起名字的技巧 136
8.4.3 數據庫具體設計工作中的技巧 136
8.5 規(guī)范化 137
8.5.1 起點 137
8.5.2 第一范式 138
8.5.3 第二范式 139
8.5.4 第三范式 140
8.5.5 規(guī)范化理論 141
8.6 層次關系的處理 143
8.6.1 層次關系的處理難點 144
8.6.2 從數據表創(chuàng)建層次關系樹145
8.6.3 搜索categories數據表里的下級
圖書門類 147
8.6.4 搜索categories數據表里的上級
圖書門類 148
8.7 關系 149
8.7.1 1:1關系 149
8.7.2 1:n關系 150
8.7.3 n:m關系 151
8.8 主鍵和外鍵 151
8.8.1 主鍵 151
8.8.2 外鍵 152
8.8.3 引用一致性(外鍵約束條件)153
8.9 索引 156
8.9.1 普通索引、唯一索引和主索引157
8.9.2 全文索引 158
8.9.3 查詢和索引的優(yōu)化 159
8.10 視圖 161
8.11 示例數據庫mylibrary(圖書管理)163
8.11.1 數據庫的屬性 164
8.11.2 數據表的屬性 164
8.12 示例數據庫myforum(網上論壇)165
8.12.1 討論組數據庫:myforum165
8.12.2 帖子之間的層次關系 166
8.13 示例數據庫exceptions(用于特殊情況
的測試) 167
8.13.1 數據表testall 167
8.13.2 數據表text_text 168
8.13.3 數據表test_blob 168
8.13.4 數據表test_date 168
8.13.5 數據表test_enum 168
8.13.6 數據表test_null 168
8.13.7 數據表test_sort1 168
8.13.8 數據表test_sort2 169
8.13.9 數據表importtable1、
importtable2、exporttable 169
第9章 SQL語言入門 170
9.1 簡介 170
9.2 簡單查詢(SELECT) 171
9.2.1 確定數據表里有多少條數據記錄
(數據行) 172
9.2.2 確定數據表里有多少條內容不重
復的數據記錄(DISTINCT) 172
9.2.3 限制查詢結果中的數據列個數172
9.2.4 限制查詢結果中的數據記錄個數
(LIMIT) 173
9.2.5 在使用LIMIT關鍵字確定數據表
里的數據記錄數(SQL_CALC_
FOUND_ROWS、FOUND_
ROWS()) 173
9.3 對查詢結果進行排序(ORDER BY)174
9.3.1 選擇一種排序方式 174
9.3.2 試用不同的排序方式 175
9.4 篩選數據記錄(WHERE,HAVING)176
9.5 涉及多個數據表的關聯(lián)查詢(LEFT/
RIGHT JOIN) 177
9.5.1 兩個數據表的關聯(lián) 178
9.5.2 3個或更多個數據表的關聯(lián)179
9.6 合并查詢結果(UNION) 181
9.7 分組查詢,統(tǒng)計函數(GROUP BY)181
9.7.1 統(tǒng)計函數 182
9.7.2 統(tǒng)計函數GROUP_CONCAT()183
9.7.3 對多個數據列進行GROUP BY
查詢 184
9.7.4 GROUP BY...WITH ROLLUP184
9.8 修改數據(INSERT、UPDATE和
DELETE) 185
9.8.1 備份數據 185
9.8.2 插入數據記錄(INSERT)186
9.8.3 修改數據記錄(UPDATE)188
9.8.4 刪除數據記錄(DELETE)188
9.9 創(chuàng)建數據表、數據庫和索引190
9.9.1 創(chuàng)建數據庫(CREATE
DATABASE) 190
9.9.2 創(chuàng)建數據表(CREATE TABLE)191
9.9.3 創(chuàng)建索引(CREATE INDEX)192
9.9.4 變更數據表的結構(ALTER
TABLE) 192
9.9.5 刪除數據庫和數據表(DROP)193
9.9.6 自動修改數據表設計(默許的
數據列修改) 193
9.9.7 SHOW命令 194
9.9.8 INFORMATION_SCHEMA數據表
家族 195
第10章 SQL解決方案 197
10.1 字符串 197
10.1.1 基本函數 197
10.1.2 改變字符集 198
10.1.3 設置客戶端字符集 199
10.1.4 模板匹配 200
10.2 日期和時間 201
10.2.1 日期和時間的語法 201
10.2.2 與日期和時間有關的計算202
10.2.3 UNIX時間戳 204
10.2.4 地理時區(qū) 206
10.3 ENUM和SET數據類型 208
10.3.1 ENUM 208
10.3.2 SET 209
10.4 變量與條件表達式(IF、CASE)209
10.4.1 變量 210
10.4.2 IF查詢 211
10.4.3 CASE分支 211
10.5 在數據表間復制數據 212
10.5.1 利用復制操作創(chuàng)建新數據表212
10.5.2 把數據復制到現有數據表213
10.6 統(tǒng)計報表 213
10.6.1 涉及titles、languages和cate-
gories數據表的統(tǒng)計報表 214
10.6.2 月度查詢統(tǒng)計報表 215
10.7 子查詢 216
10.7.1 語法變體 216
10.7.2 示例 218
10.8 保證數據的一致性 219
10.8.1 找出沒有作者的圖書 219
10.8.2 找出無效的出版公司引用:1:n
關系中的無效記錄 219
10.8.3 找出作者與圖書之間的無效
鏈接(n:m關系) 220
10.9 找出冗余的數據記錄 221
10.10 數據表設計方案的改進 221
10.11 對前n條或后n條記錄進行處理223
10.11.1 數據查詢(SELECT) 223
10.11.2 修改現有記錄(UPDATE
和DELETE) 224
10.11.3 把全部討論線程刪除到只
剩下最新的500個線程 224
10.12 以隨機方式選擇數據記錄225
10.12.1 通用方法:RAND()函數225
10.12.2 自備隨機數的數據表 225
10.12.3 利用id數據列選擇隨機
記錄 226
10.13 全文索引 226
10.13.1 基礎知識 227
10.13.2 圖書檢索 229
10.13.3 論壇文章檢索 231
10.14 鎖定 232
10.14.1 語法 232
10.14.2 GET_LOCK和RELEASE_
LOCK函數 233
10.15 事務 233
10.15.1 為什么要使用事務 233
10.15.2 事務的控制 234
10.15.3 事務機制的工作流程 235
10.15.4 事務與鎖定 237
10.15.5 事務的隔離模式 238
10.15.6 出錯處理 240
第11章 訪問權限與信息安全 241
11.1 簡介 241
11.1.1 客戶與MySQL服務器之間的
連接 241
11.1.2 訪問管理 242
11.2 急救 246
11.2.1 保護MySQL安裝 246
11.2.2 創(chuàng)建新的數據庫和用戶 247
11.2.3 授予創(chuàng)建個人數據庫的權限248
11.2.4 忘記root密碼情況的處理249
11.3 訪問控制機制的內部工作原理250
11.3.1 兩級訪問控制 250
11.3.2 權限 250
11.3.3 mysql數據庫 253
11.3.4 user數據表 254
11.3.5 user.Host數據列 257
11.3.6 db數據表和host數據表260
11.3.7 tables_priv和columns_priv
數據表 261
11.3.8 procs_priv數據表 263
11.4 訪問權限的設置工具 263
11.4.1 使用GRANT和REVOKE命令
改變訪問權限 263
11.4.2 使用SHOW GRANT命令查看
訪問權限 265
11.4.3 使用mysqladmin程序改變
密碼 265
11.5 MySQL 4.1版本開始的安全密碼
驗證 265
11.5.1 升級客戶端函數庫 266
11.5.2 old-passwords模式 266
11.5.3 同時使用舊的和新的密碼的
操作 266
11.6 建立連接的問題 267
11.6.1 連接困難的可能原因 267
11.6.2 錯誤檢查的更多方法 270
11.7 系統(tǒng)安全性 270
11.7.1 系統(tǒng)級安全措施 270
11.7.2 重要數據存儲的安全保護271
11.7.3 與MySQL服務器有關的安全
風險 271
11.7.4 不要使用root或Administrator
權限來運行MySQL服務器 271
11.7.5 網絡安全與防火墻 272
第12章 GIS函數 273
12.1 GIS數據格式 273
12.1.1 地理坐標的表示方法 273
12.1.2 Well-Known Text和Well-
Known Binary(OpenGIS) 274
12.2 MySQL的GIS實現 275
12.2.1 數據類型 275
12.2.2 簡單的幾何函數 277
12.2.3 空間分析函數 279
12.2.4 為幾何數據創(chuàng)建索引 281
12.3 SQL示例(冰川數據庫) 281
12.3.1 創(chuàng)建數據表 282
12.3.2 插入數據 282
12.3.3 查詢數據 282
12.4 SQL示例(opengeodb數據庫)284
12.4.1 數據來源和導入 285
12.4.2 導入 285
12.4.3 對圓形地理區(qū)域進行搜索286
第13章 存儲過程和觸發(fā)器 288
13.1 為什么要使用存儲過程和觸發(fā)器288
13.1.1 存儲過程 288
13.1.2 觸發(fā)器 289
13.2 初識SP 289
13.2.1 MySQL命令解釋器:mysql
程序 290
13.2.2 MySQL Query Browser 291
13.3 SP的實現 292
13.4 SP的管理 293
13.4.1 創(chuàng)建、編輯和刪除SP 293
13.4.2 信息安全問題 295
13.4.3 SP的備份和恢復 295
13.5 SP的語法和語言元素 296
13.5.1 基本語法規(guī)則 296
13.5.2 調用SP(CALL) 297
13.5.3 參數和返回值 298
13.5.4 命令的封裝(BEGIN -END)299
13.5.5 分支 301
13.5.6 循環(huán) 301
13.5.7 出錯處理(出錯處理句柄)302
13.5.8 光標 304
13.6 SP應用示例 306
13.6.1 增加新的圖書門類 306
13.6.2 增加一本新圖書 307
13.6.3 確定父門類 308
13.6.4 按層次結構生成圖書門類
清單 309
13.7 觸發(fā)器 311
13.7.1 創(chuàng)建觸發(fā)器 311
13.7.2 刪除觸發(fā)器 312
13.7.3 實現細節(jié)和管理工具 312
13.7.4 功能局限性 312
13.7.5 觸發(fā)器應用示例 313
第14章 管理與服務器配置 314
14.1 基礎知識 314
14.1.1 MySQL數據庫系統(tǒng)的管理
工具 314
14.1.2 設置root密碼 315
14.1.3 MySQL服務器配置文件 316
14.1.4 重新啟動MySQL服務器 316
14.1.5 MySQL服務器的基本配置317
14.1.6 目錄 317
14.1.7 通信設置 317
14.1.8 默認的數據表格式 318
14.1.9 新數據表的默認字符集和排序
方式 318
14.1.10 地理時區(qū) 318
14.1.11 出錯消息的顯示語言 319
14.1.12 SQL模式 319
14.2 備份 321
14.2.1 備份數據庫(mysqldump)321
14.2.2 用備份恢復數據庫(mysql)324
14.2.3 快速備份(mysqlhotcopy)325
14.3 數據庫的遷移 327
14.4 導出和導入文本文件 329
14.4.1 文本文件里的特殊字符329
14.4.2 字符串、數值、日期/時間、
BLOB和NULL值 330
14.4.3 用LOAD DATA INFILE命令
導入 330
14.4.4 用mysqlimport工具導入333
14.4.5 用SELECT ... INTO OUTFILE
命令導出 333
14.4.6 用mysqldump程序導出 335
14.4.7 用mysql程序的批處理模式
導出 335
14.5 日志 337
14.5.1 為什么要使用日志 337
14.5.2 缺點與不足 338
14.5.3 變更日志(update log)338
14.5.4 出錯日志、登錄日志和慢查詢
日志 340
14.5.5 日志文件的管理 342
14.6 鏡像機制 342
14.6.1 簡介 342
14.6.2 建立鏡像機制的主控系統(tǒng)344
14.6.3 建立鏡像機制的從屬系統(tǒng)346
14.6.4 用LOAD DATA命令建立鏡像
機制 348
14.6.5 內部鏡像機制 348
14.6.6 客戶端編程 350
14.7 管理MyISAM數據表 351
14.7.1 myisamchk程序 351
14.7.2 myisamchk程序的使用方法352
14.7.3 速度優(yōu)化與內存使用情況352
14.7.4 對MyISAM數據表進行壓縮
和優(yōu)化 353
14.7.5 修復受損的MyISAM數據表353
14.7.6 壓縮MyISAM數據表(myisampack程序) 354
14.8 InnoDB數據表的管理 354
14.8.1 表空間的管理 354
14.8.2 日志文件 359
14.9 MySQL服務器的優(yōu)化 362
14.9.1 優(yōu)化內存管理 363
14.9.2 查詢緩存區(qū) 364
14.10 ISP數據庫管理 366
14.10.1 ssh工具 366
14.10.2 phpMyAdmin工具 366
14.10.3 實現自定義的PHP腳本366
14.10.4 自定義:Perl腳本 367
第四部分 程 序 設 計
第15章 PHP 370
15.1 mysql功能模塊 370
15.1.1 連接MySQL服務器 371
15.1.2 執(zhí)行SQL命令 372
15.1.3 處理SELECT查詢結果 373
15.1.4 事務 376
15.1.5 出錯處理與查找 376
15.2 mysqli的類、方法和屬性377
15.2.1 選擇編程接口:mysql還是
mysqli 377
15.2.2 有效性測試 378
15.2.3 構成mysqli接口的類 378
15.2.4 連接MySQL服務器 378
15.2.5 執(zhí)行SQL命令 380
15.2.6 處理SELECT查詢結果(mysqli_
result()方法) 380
15.2.7 一次執(zhí)行多條SQL命令 382
15.2.8 帶參數的SQL命令(預處理
語句) 382
15.2.9 事務 385
15.3 把數據庫功能打包為一個類385
15.3.1 使用單獨的密碼文件提高
安全性 385
15.3.2 使用MyDb類實現安全和
方便 386
15.4 把SELECT查詢結果顯示為一個表格389
15.5 字符串、日期、時間、BLOB和
NULL 390
15.5.1 字符串和BLOB 390
15.5.2 日期和時間 391
15.5.3 NULL值 392
15.6 向關聯(lián)數據表插入新數據記錄393
15.7 處理來自HTML表單的輸入數據393
15.7.1 代碼結構 394
15.7.2 創(chuàng)建HTML表單 396
15.7.3 對表單數據進行合法性檢查400
15.7.4 把表單數據存入數據庫401
15.7.5 刪除一本圖書 403
15.7.6 值得改進的地方 404
15.8 分頁顯示查詢結果 404
15.8.1 代碼結構 405
15.8.2 對圖書作者進行搜索 407
15.8.3 對圖書進行搜索 408
15.8.4 顯示搜索結果 408
15.8.5 指向其他結果頁面的鏈接410
15.9 處理層次化數據 410
15.9.1 代碼結構 411
15.9.2 顯示圖書門類樹 413
15.9.3 插入一個或多個新圖書門類415
15.9.4 刪除一個圖書門類及其下級
門類 416
15.9.5 搜索上級圖書門類 417
15.9.6 搜索下級圖書門類 418
15.10 速度優(yōu)化 419
15.10.1 提高代碼執(zhí)行效率的基本
原則 419
15.10.2 統(tǒng)計信息和性能指標 420
15.10.3 示例:高效地生成圖書門類
下拉列表 421
15.11 Unicode 424
15.12 二進制數據(BLOB)和圖像428
15.12.1 在數據庫里存儲圖像的基礎
知識與編程技巧 429
15.12.2 在數據庫里存儲圖像的程序
代碼 431
15.13 存儲過程 434
15.14 SP Administrator 435
15.14.1 安裝SP Administrator435
15.14.2 使用SP Administrator435
15.14.3 SP Administrator代碼436
第16章 Perl 441
16.1 編程技巧 441
16.1.1 DBI和DBD::mysql模塊 441
16.1.2 與數據庫建立連接 442
16.1.3 執(zhí)行SQL命令 443
16.1.4 處理SELECT查詢結果 445
16.1.5 字符串、BLOB、日期值、SET、
ENUM和NULL 449
16.1.6 DBD::mysql模塊特有的方法
和屬性 452
16.1.7 Unicode 453
16.1.8 事務 454
16.1.9 出錯處理 454
16.2 示例:刪除無效的數據記錄
(mylibrary) 456
16.3 CGI示例:圖書管理(mylibrary) 457
16.3.1 圖書檢索(mylibrary-find.pl
腳本) 457
16.3.2 新圖書的簡單輸入(mylibrary-
simpleinput.pl腳本) 460
16.4 CGI Unicode示例 462
16.4.1 圖書檢索(mylibrary-find-
utf8.pl腳本) 462
16.4.2 新圖書的輸入(mylibrary-
simpleinput-utf8.pl腳本) 463
第17章 Java(JDBC和Connector/J) 464
17.1 基礎知識 464
17.1.1 Java的安裝 464
17.1.2 Connector/J的安裝 466
17.2 程序設計技巧 468
17.2.1 第一個示例 469
17.2.2 與MySQL服務器建立連接 470
17.2.3 連接MySQL服務器時可能
遇到的問題 472
17.2.4 執(zhí)行SQL命令 473
17.2.5 處理SELECT查詢結果 474
17.2.6 預處理語句 478
17.2.7 事務 479
17.2.8 批處理命令 479
17.2.9 二進制數據(BLOB)的
處理 480
第18章 C語言 483
18.1 MySQL C API(libmysqlclient) 483
18.2 Hello,World 483
18.2.1 對系統(tǒng)的基本要求 483
18.2.2 入門級示例 484
18.2.3 編譯與鏈接 485
18.2.4 Makefile 486
18.2.5 以靜態(tài)方式綁定MySQL API
函數 486
18.3 與MySQL服務器建立連接 487
18.3.1 處理MySQL配置文件
my.cnf 488
18.3.2 處理命令行選項 488
18.4 執(zhí)行SQL命令 489
18.4.1 簡單的SQL命令 489
18.4.2 一次執(zhí)行多條SQL命令 490
18.4.3 預處理語句 493
18.4.4 字符集設置(Unicode)497
18.5 處理二進制數據和特殊字符498
18.6 出錯處理 500
第19章 Visual Basic 6/VBA 501
19.1 基礎知識和術語 501
19.2 Connector/ODBC選項 503
19.3 ADO程序設計與Visual Basic 6/VBA 504
19.4 與MySQL服務器建立連接 506
19.4.1 與MySQL服務器建立連接:
使用DSN 506
19.4.2 與MySQL服務器建立連接
(不使用DSN) 506
19.4.3 ADO程序設計技巧 509
19.4.4 示例:給titles數據表增加
一個authors數據列 514
19.4.5 示例:添加一本新圖書 517
19.4.6 示例:把圖像文件存入和讀出
BLOB數據列 519
19.5 轉換器:從Microsoft SQL Server到
MySQL 521
19.5.1 mssql2mysql腳本的特點521
19.5.2 對系統(tǒng)的要求 521
19.5.3 缺陷與不足 521
19.5.4 使用方法 522
19.5.5 設置有關參數 522
19.6 VBMySQLDirect 523
19.6.1 安裝 524
19.6.2 應用 524
19.6.3 示例 524
第20章 Visual Basic .NET和C#526
20.1 ADO .NET與MySQL之間的通信 526
20.1.1 通過Connector/Net連接數
據庫 527
20.1.2 用ODBC數據泵連接
數據庫 530
20.2 編程技巧 532
20.2.1 執(zhí)行SQL命令(MySql-
Command對象) 532
20.2.2 帶參數的SQL命令(MySql -
Parameter對象) 533
20.2.3 處理離散的SELECT查詢結果
(ExecuteScalar()方法) 535
20.2.4 讀取SELECT查詢結果
(MySqlDataReader對象) 535
20.2.5 DataSet、DataTable和
MySqlDataAdapter對象 537
20.2.6 輔助函數 540
20.2.7 出錯處理 540
20.2.8 Windows.Form和ASP .NET
控件 540
20.2.9 事務 542
20.3 示例:把新圖書記錄存入mylibrary
數據庫 542
20.4 示例:把圖像文件存入和讀出一個
BLOB數據列 544
第五部分 參 考 資 料
第21章 SQL語法指南 548
21.1 語法 548
21.1.1 對象命名規(guī)則 548
21.1.2 區(qū)分字母大小寫 549
21.1.3 字符串 549
21.1.4 字符集和排序方式 550
21.1.5 數值 550
21.1.6 數值和字符串的自動轉換 550
21.1.7 日期和時間 551
21.1.8 二進制數據 551
21.1.9 二進制數值 551
21.1.10 注釋語句 551
21.1.11 SQL命令末尾的分號 552
21.2 操作符 552
21.2.1 算術操作符與位操作符 553
21.2.2 比較操作符 553
21.2.3 使用LIKE操作符進行模式
匹配 553
21.2.4 使用REGEXP操作符進行模式
匹配 554
21.2.5 二進制字符串比較 554
21.2.6 邏輯操作符 555
21.3 變量和常數 555
21.3.1 變量賦值 555
21.3.2 使用和查看變量 555
21.3.3 全局級系統(tǒng)變量與會話級系統(tǒng)
變量 556
21.3.4 SET PASSWORD命令 556
21.3.5 結構化變量 556
21.3.6 常數 557
21.4 MySQL數據類型 557
21.5 SQL命令匯總表(按功能分類)559
21.6 SQL命令指南(按字母表順序
排列) 561
21.7 SQL函數指南 596
21.7.1 算術函數 596
21.7.2 比較函數、測試函數、分支
函數 597
21.7.3 類型轉換(投射) 597
21.7.4 字符串處理 597
21.7.5 日期/時間函數 600
21.7.6 GROUP BY函數 604
21.7.7 其他函數 605
21.8 GIS數據類型與GIS函數 606
21.9 與存儲過程和觸發(fā)器有關的語言
元素 608
第22章 MySQL工具和選項 610
22.1 概述 610
22.2 通用選項和配置文件 610
22.2.1 通用選項 610
22.2.2 設置配置文件的選項 612
22.2.3 內存量的表示方法 613
22.2.4 環(huán)境變量(系統(tǒng)變量)613
22.2.5 選項設置規(guī)則 614
22.3 mysqld程序(服務器) 614
22.3.1 基本選項 615
22.3.2 與日志和鏡像功能有關的
選項 617
22.3.3 InnoDB配置選項 618
22.3.4 其他選項 620
22.4 mysqld_safe腳本(啟動MySQL
服務器) 620
22.5 mysql_install_db腳本(安裝mysql
數據庫) 621
22.6 mysql_fix_privileges腳本(更新
mysql數據庫) 622
22.7 mysql_fix_extensions腳本
(重命名MyISAM文件) 622
22.8 mysql程序(SQL命令解釋器) 622
22.9 mysqladmin程序(日常管理) 624
22.10 mysqldump程序(數據的備份/
導出) 625
22.11 mysqlimport程序(文本導入、批量
導入) 628
22.12 mysqlshow程序(查看信息)628
22.13 myisamchk程序(修復MyISAM
文件) 629
22.14 myisampack程序(壓縮MyISAM
文件) 630
第23章 MySQL API應用指南 632
23.1 PHP API(mysql接口) 632
23.2 PHP API(mysqli接口) 635
23.2.1 mysqli類 636
23.2.2 mysqli_result類 637
23.2.3 mysqli_stmt類 638
23.3 Perl DBI 638
23.3.1 常用的變量名 638
23.3.2 與MySQL服務器建立連接639
23.3.3 執(zhí)行SQL命令、處理SELECT
查詢結果 640
23.3.4 出錯處理 642
23.3.5 輔助函數 642
23.3.6 DBD::mysql驅動程序中的
MySQL專用擴展模塊 642
23.4 JDBC(Connector/J) 644
23.4.1 與MySQL服務器建立連接644
23.4.2 執(zhí)行SQL命令 644
23.4.3 處理SELECT查詢結果
(ResultSet類) 646
23.4.4 事務 647
23.5 ADO .NET(Connector/Net)647
23.5.1 與MySQL服務器建立連接647
23.5.2 執(zhí)行SQL命令與處理SELECT
查詢結果 648
23.5.3 利用DataSet/DataTable類修改
數據 649
23.5.4 事務 650
23.6 C API 650
23.6.1 數據結構 650
23.6.2 連接與管理 652
23.6.3 執(zhí)行SQL命令及處理SELECT
查詢結果 654
23.6.4 預處理語句 656
第六部分 附 錄
附錄A 術語解釋 658
附錄B 本書的配套示例文件 663
附錄C 參考書目 664