目錄
前言 1
第1章 客戶端程序mysql 17
1.0 概述 17
1.1 設置MySQL用戶賬號 18
1.2 創建數據庫和示例錶 20
1.3 找不到mysql 22
1.4 指定mysql的命令選項 24
1.5 以交互的方式執行SQL語句 29
1.6 執行從文件或程序中讀取的SQL語句 31
1.7 控製mysql輸齣的路徑和格式 33
1.8 在SQL語句中使用用戶定義的變量 39
第2章 編寫基於MySQL的程序 42
2.0 概述 42
2.1 連接數據庫與斷開連接 45
2.2 檢查錯誤 59
2.3 編寫庫文件 67
2.4 執行語句並獲取結果 81
2.5 處理語句中的特殊字符和NULL值 96
2.6 處理標識符中的特殊字符 105
2.7 識彆結果集中的NULL值 107
2.8 獲取連接參數 111
2.9 結論和建議 120
第3章 從錶中查詢數據 121
3.0 概述 121
3.1 指定查詢的行與列 122
3.2 指定查詢結果中列的彆名 124
3.3 查詢結果排序 128
3.4 過濾重復行 129
3.5 處理NULL值 131
3.6 在程序中比較NULL值 133
3.7 通過視圖簡化查詢 134
3.8 多錶查詢 135
3.9 截取查詢結果的開頭、末尾或中間部分 137
3.10 當LIMIT要求“錯誤”的排序時該怎麼辦 141
3.11 利用錶達式計算LIMIT值 142
第4章 錶管理 144
4.0 概述 144
4.1 剋隆錶 144
4.2 將查詢結果保存到錶中 145
4.3 創建臨時錶 148
4.4 生成唯一的錶名 150
4.5 檢查或更改錶的存儲引擎 152
4.6 通過mysqldump復製錶 153
第5章 字符串 156
5.0 概述 156
5.1 字符串的屬性 157
5.2 字符串的數據類型 161
5.3 設置客戶端連接的字符集 163
5.4 字符串字麵量的定義 165
5.5 檢查或更改字符串的字符集或排序規則 167
5.6 轉換字符串的大小寫 170
5.7 控製字符串比較中的大小寫敏感度 172
5.8 利用SQL模式進行模式匹配 175
5.9 使用正則錶達式進行模式匹配 178
5.10 分割或連接字符串 182
5.11 搜索子字符串 185
5.12 設置MySQL用戶賬號 186
5.13 用短語進行全文檢索 191
5.14 全文檢索中必須齣現或禁止齣現的詞 193
5.15 全文檢索的詞組查找 194
第6章 日期與時間 196
6.0 概述 196
6.1 選擇時間數據類型 197
6.2 使用小數秒支持 199
6.3 更改MySQL的日期格式 200
6.4 設置客戶端時區 204
6.5 切換日期時間值的時區 206
6.6 獲取當前的日期或時間 207
6.7 使用TIMESTAMP或DATETIME追蹤行的修改時間 208
6.8 提取日期或時間值的各部分 211
6.9 閤成日期或時間值 216
6.10 時間值和基本單位之間的轉換 218
6.11 計算日期或時間之間的間隔 222
6.12 日期或時間值的加法運算 227
6.13 計算年齡 232
6.14 查詢一個月的第一天、最後一天或當月的天數 234
6.15 通過子字符串替換來計算日期 236
6.16 計算星期 238
6.17 查詢某周中某天的日期 238
6.18 計算閏年 241
6.19 規範化非ISO格式的日期字符串 245
6.20 基於時間特徵的查詢 246
第7章 查詢結果的排序 250
7.0 概述 250
7.1 通過ORDER BY對查詢結果排序 251
7.2 利用錶達式進行排序 255
7.3 查詢結果中不包含排序列 256
7.4 控製字符串排序的大小寫區分 260
7.5 日期排序 263
7.6 利用列值的子字符串排序 267
7.7 利用固定長度的子字符串排序 268
7.8 利用可變長度的子字符串排序 271
7.9 按域名順序排列主機名 276
7.10 按數字順序排序用點分割的IP值 278
7.11 將值移動到排序結果的開頭或最後 281
7.12 自定義排序 284
7.13 枚舉值的排序 285
第8章 匯總數據 289
8.0 概述 289
8.1 基本的匯總技巧 291
8.2 通過創建視圖簡化匯總 298
8.3 查找與最小值和最大值相關的值 298
8.4 控製MIN()和MAX()是否區分字符串大小寫 300
8.5 按子群匯總 302
8.6 匯總與NULL值 306
8.7 僅選擇具有特定特徵的組 309
8.8 通過計數來確定值是否唯一 310
8.9 按錶達式結果分組 311
8.10 匯總非分類數據 312
8.11 查找最小或最大的匯總值 315
8.12 基於日期的匯總 317
8.13 同時使用分組和總體的匯總值 319
8.14 生成包含匯總和列錶的報告 322
第9章 存儲例程,觸發器和計劃事件 326
9.0 概述 326
9.1 創建復閤語句對象 329
9.2 利用存儲函數封裝計算 331
9.3 通過存儲過程返迴多個值 333
9.4 利用觸發器動態設置列的默認值 334
9.5 利用觸發器模擬基於函數的索引 336
9.6 在其他日期和時間類型中模擬TIMESTAMP屬性 339
9.7 利用觸發器記錄變更 341
9.8 使用事件來計劃數據庫操作 344
9.9 編寫輔助例程動態執行SQL 346
9.10. 處理存儲程序中的錯誤 347
9.11 利用觸發器預處理或拒絕數據 351
第10章 元數據 354
10.0 概述 354
10.1 獲取受語句影響的行數 356
10.2 獲取結果集的元數據 359
10.3 確認語句是否會生成結果集 369
10.4 使用元數據來格式化查詢輸齣 369
10.5 查看數據庫和錶或檢查其存在性 373
10.6 訪問列的定義 375
10.7 獲取ENUM和SET列的信息 380
10.8 獲取服務器的元數據 382
10.9 編寫適閤MySQL服務器版本的應用程序 383
第11章 導入和導齣數據 386
11.0 概述 386
11.1 使用LOAD DATA和mysqlimport導入數據 390
11.2 導入CSV文件 401
11.3 導齣MySQL的查詢結果 402
11.4 導入和導齣NULL值 404
11.5 編寫數據導齣程序 406
11.6 數據文件格式的轉換 411
11.7 提取並重新排列數據文件的列 412
11.8 MySQL和Microsoft Excel之間的數據交換 415
11.9 以XML的格式導齣查詢結果 417
11.10 將XML導入到MySQL中 420
11.11 猜測數據文件中的錶結構 423
第12章 驗證與格式化數據 427
12.0 概述 427
12.1 通過SQL模式拒絕錯誤的輸入值 428
12.2 驗證和轉換數據 430
12.3 使用模式匹配來驗證數據 433
12.4 使用模式匹配廣泛的內容類型 436
12.5 使用模式匹配數字值 436
12.6 使用模式匹配日期或時間 438
12.7 使用模式匹配電子郵件地址或URL 442
12.8 使用錶的元數據驗證數據 443
12.9 使用查找錶驗證數據 447
12.10 將兩位數的年份值轉換成四位數的形式 449
12.11 檢查日期或時間各部分的有效性 451
12.12 編寫處理日期的工具程序 453
12.13 導入非ISO格式的日期值 459
12.14 使用非ISO格式導齣日期 460
12.15 後記 461
第13章 序列 463
13.0 概述 463
13.1 創建自增列並生成序列值 464
13.2 序列的定義 467
13.3 行的刪除對序列造成的影響 469
13.4 設置MySQL用戶賬號 471
13.5 重新編號現有的序列 475
13.6 擴展序列的範圍 477
13.7 重用序列的最大值 478
13.8 按特定的順序給行重新編號 479
13.9 添加序列 480
13.10 同時管理多個自動增加的值 481
13.11 通過自動增量值關聯錶 482
13.12 將序列作為計數器 485
13.13 生成重復序列 488
第14章 連接與子查詢 490
14.0 概述 490
14.1 錶之間的結閤 491
14.2 查找錶之間不匹配的行 499
14.3 識彆並刪除不匹配或獨立存在的行 504
14.4 錶的自我比較 507
14.5 生成主從復閤結構列錶和匯總 511
14.6 列舉多對多的關係 515
14.7 查找每組的最小值或最大值 518
14.8 利用連接填充或找齣列錶中的缺口 521
14.9 利用Join控製查詢的排序 524
14.10 在程序中引用連接輸齣的列名 526
第15章 統計技術 528
15.0 概述 528
15.1 計算描述性統計 529
15.2 分組描述性統計 533
15.3 生成頻率分布 534
15.4 統計缺失的值 537
15.5 計算綫性迴歸或相關係數 540
15.6 生成隨機數 542
15.7 隨機排序 544
15.8 隨機選擇數據 547
15.9 計算相鄰兩行之差 548
15.10 查找纍積總和與移動平均值 551
15.11 指定排名 555
15.12 計算團隊排名 559
第16章 處理重復數據 565
16.0 概述 565
16.1 防止錶中齣現重復數據 566
16.2 處理重復的加載數據 568
16.3 識彆與統計重復數據的數量 572
16.4 移除錶中的重復數據 576
第17章 事務處理 581
17.0 概述 581
17.1 選擇事務存儲引擎 582
17.2 使用SQL執行事務 583
17.3 在程序內執行事務 585
17.4 Perl程序中的事務處理 587
17.5 Ruby程序中的事務處理 589
17.6 PHP程序中的事務處理 590
17.7 Python程序中的事務處理 591
17.8 Java程序中的事務處理 592
第18章MySQL的Web應用簡介 593
18.0 概述 593
18.1 生成網頁的基本方法 594
18.2 通過Apache運行Web腳本 597
18.3 通過Tomcat運行Web腳本 607
18.4 編碼Web輸齣中的特殊字符 612
第19章 根據查詢結果生成網頁的內容 621
19.0 概述 621
19.1 根據查詢結果顯示段落 622
19.2 根據查詢結果顯示列錶 624
19.3 根據查詢結果顯示錶格 635
19.4 根據查詢結果顯示超鏈接 640
19.5 根據數據庫的內容創建導航索引 643
19.6 存儲圖像或其他二進製數據 649
19.7 提供圖像或其他二進製數據 656
19.8 提供橫幅廣告 659
19.9 提供查詢結果的下載 661
第20章 利用MySQL處理Web輸入 664
20.0 概述 664
20.1 編寫生成Web錶單的腳本 667
20.2 根據數據庫的內容創建單選錶單元素 670
20.3 根據數據庫內容創建多選的錶單元素 686
20.4 將數據庫內容加載到錶單中 692
20.5 收集Web輸入 697
20.6 驗證Web輸入 707
20.7 將Web輸入存儲到數據庫 708
20.8 處理文件上傳 711
20.9 基於Web的數據庫搜索 718
20.10 生成上下頁的鏈接 721
20.11 生成點擊標題排序的錶格 726
20.12 網頁的訪問次數 730
20.13 記錄網頁的訪問日誌 734
20.14 利用MySQL記錄Apache的日誌 735
第21章 基於MySQL的Web會話管理 743
21.0 概述 743
21.1 在Perl應用程序中使用基於MySQL的會話 746
21.2 在Ruby應用程序中使用基於MySQL的存儲 752
21.3 在PHP會話管理器中使用基於MySQL的存儲 756
21.4 利用MySQL與Tomcat存儲會話信息 766
第22章 服務器管理 775
22.0 概述 775
22.1 配置服務器 775
22.2 管理插件接口 778
22.3 控製服務器的日誌記錄 780
22.4 日誌文件的輪轉與淘汰 784
22.5 輪轉日誌錶或淘汰日誌錶的記錄 786
22.6 監控MySQL服務器 787
22.7 備份的創建和使用 799
第23章 數據庫的安全 801
23.0 概述 801
23.1 瞭解mysql.user錶 802
23.2 管理用戶賬號 803
23.3 密碼策略 808
23.4 檢查密碼強度 810
23.5 密碼過期 811
23.6 設置新密碼 813
23.7 重置過期密碼 813
23.8 查找並修復不安全的賬號 814
23.9 禁止賬號使用MySQL 4.1之前的密碼 818
23.10 查找並刪除匿名賬號 819
23.11 修改“任何主機”和“多個主機”的賬號 820
· · · · · · (
收起)