MySQL 技術內幕, 5/e
內容描述
《MySQL技術內幕(第5版)》是MySQL方面名副其實的經典著作,全面介紹MySQL的基礎知識以及MySQL有別於其他數據庫系統的獨特功能,書中特別關註如何高效地使用和管理MySQL。
由4個部分組成:一部分集中介紹與數據庫使用相關的一些基本概念,二部分重點關註的是自己如何動手編寫和使用MySQL的程序,三部分主要是面向那些負責數據庫管理的讀者,四部分提供了一些參考附錄。書中包含大量示例,詳盡地演示了MySQL的各項功能特性。此外,本書還為使用C語言、PHP語言和Perl語言開發數據庫應用的讀者提供了相關內容。
本書不僅適合MySQL初學者閱讀,也適合想要深入瞭解MySQL的數據庫管理人員和開發人員參考。
目錄大綱
第1章MySQL入門1
1.1 MySQL的用途1
1.2示例數據庫3
1.2.1美史聯盟項目4
1.2.2成績考評項目5
1.2.3如何運用示例數據庫5
1.3基本數據庫術語6
1.3.1結構術語6
1.3 .2查詢語言術語8
1.3.3 MySQL的體系結構術語8
1.4 MySQL教程9
1.4.1獲取示例數據庫發行包10
1.4.2基本配置要求10
1.4.3建立和斷開MySQL服務器連接11
1.4.4執行SQL語句13
1.4.5創建數據庫15
1.4.6創建表15
1.4.7添加新行29
1.4.8重置sampdb數據庫32
1.4.9檢索信息33
1.4.10刪除或更新已有行56
1.5 mysql交互技巧58
1.5.1簡化連接過程58
1.5.2在調用命令時減少打字輸入60
1.6何去何從63
第2章使用SQL管理數據64
2.1服務器的SQL模式65
2.2 MySQL的標識符語法和命名規則66
2.3 SQL語句的大小寫規則67
2.4字符集支持68
2.4.1指定字符集69
2.4.2確定可用字符集和當前設置70
2.4.3 Unicode支持71
2.5數據庫的選擇、創建、刪除和更改72
2.5. 1選擇數據庫72
2.5.2創建數據庫72
2.5.3刪除數據庫73
2.5.4更改數據庫73
2.6表的創建、刪除、索引和更改73
2.6.1存儲引擎的特性73
2.6.2創建表77
2.6.3刪除表84
2.6.4索引表84
2.6.5更改表結構88
2.7獲取數據庫元數據90
2.7.1使用SHOW語句獲取元數據90
2.7.2借助INFORMATION_SCHEMA獲取元數據92
2.7.3從命令行獲取元數據94
2.8使用連接實現多表檢索95
2.8.1內連接96
2.8.2對被連接表裡的列引用進行限定97
2.8.3左(外)連接和右(外)連接97
2.9使用子查詢實現多表檢索100
2.9.1帶關係比較運算符的子查詢101
2.9.2 IN和NOTIN子查詢102
2.9.3 ALL、ANY和SOME子查詢103
2.9.4 EXISTS和NOTEXISTS子查詢103
2.9.5相關子查詢104
2.9.6 FROM子句裡的子查詢104
2.9.7將子查詢改寫為連接104
2.10使用UNION實現多表檢索106
2.11多表刪除和更新108
2.12事務處理110
2.12.1利用事務保證語句安全執行111
2.12.2使用事務保存點114
2.12.3事務隔離114
2.13外鍵和引用完整性116
2.14使用FULLTEXT搜索121
2.14.1自然語言FULLTEXT搜索122
2.14.2布爾模式的全文搜索124
2.14.3查詢擴展全文搜索125
2.14.4配置全文搜索引擎126
第3章數據類型127
3.1數據值類別128
3.1. 1數值128
3.1.2字符串值129
3.1.3時態(日期/時間)值136
3.1.4空間值136
3.1.5布爾值136
3.1.6 NULL值136
3.2 MySQL數據類型137
3.2.1數據類型概述137
3.2.2表定義裡的特殊列類型138
3.2.3指定列的默認值139
3.2.4數字數據類型140
3.2.5字符串數據類型145
3.2.6時態(日期/時間)數據類型156
3.3 MySQL如何處理無效數據值163
3.4處理序列164
3.4.1通用的AUTO_INCREMENT屬性164
3.4.2存儲引擎特有的AUTO_INCREMENT屬性166
3.4.3使用AUTO_INCREMENT列需要考慮的問題168
3.4.4 AUTO_INCREMENT列的使用提示168
3.4. 5在無AUTO_INCREMENT的情況下生成序列170
3.5表達式計算和類型轉換171
3.5.1編寫表達式172
3.5.2類型轉換177
3.6選擇數據類型183
3.6.1列要存放什麼類型的值184
3.6.2所有值是否都在某個特定的區間內186
第4章視圖和存儲程序188
4.1使用視圖189
4.2使用存儲程序191
4.2.1複合語句和語句分隔符191
4.2.2存儲函數和存儲過程193
4.2. 3觸發器196
4.2.4事件197
4.3視圖和存儲程序的安全性199
第5章查詢優化200
5.1使用索引200
5.1.1索引的優點201
5.1.2索引的代價203
5.1.3挑選索引203
5.2 MySQL查詢優化程序206
5.2.1查詢優化程序的工作原理207
5.2.2使用EXPLAIN檢查優化程序的操作209
5.3選擇利於高效查詢的數據類型214
5.4選擇利於高效查詢的表存儲格式216
5.5高效加載數據217
5.6調度、鎖定和並發219
第6章MySQL程序設計入門221
6.1為何要自己編寫MySQL程序221
6.2 MySQL提供的API223
6.2.1 C語言API224
6.2.2 Perl語言DBIAPI224
6.2.3 PHP語言API225
6.3選擇API226
6.3.1執行環境227
6.3.2性能227
6.3.3開發時間228
6.3.4可移植性228
第7章用C語言編寫MySQL程序230
7.1編譯和鏈接客戶端程序231
7.2連接服務器233
7.3出錯處理和命令選項處理236
7.3.1出錯檢查236
7.3.2實時獲取連接參數239
7.3.3把選項處理整合進客戶端程序248
7.4處理SQL語句252
7.4.1處理那些修改行的語句253
7.4.2處理那些返回結果集的語句254
7.4.3通用的語句處理器256
7.4.4另一種語句處理方法257
7.4.5 mysql_store_result()與mysql_use_result()的對比258
7.4.6使用結果集元數據260
7.4.7對特殊字符和二進制數據進行編碼264
7.5交互式語句執行程序267
7.6編寫支持SSL的客戶端程序268
7.7一次執行多條語句272
7.8使用服務器端預處理語句273
7.9使用預處理CALL支持282
第8章用PerlDBI編寫MySQL程序286
8.1 Perl腳本的特點286
8.2 PerlDBI概述287
8.2.1 DBI數據類型287
8.2.2一個簡單的DBI腳本288
8.2.3出錯處理291
8.2.4處理那些修改行的語句294
8.2.5處理那些返回結果集的語句295
8.2 .6在語句串裡引用特殊字符302
8.2.7佔位符與預處理語句305
8.2.8把查詢結果綁定到腳本變量307
8.2.9指定連接參數307
8.2.10調試310
8.2.11使用結果集元數據312
8.2.12執行事務316
8.3 DBI腳本實踐317
8.3.1生成美史聯盟成員名錄317
8.3.2發送成員資格更新通知322
8.3.3編輯美史聯盟成員條目326
8.3.4尋找志趣相投的聯盟成員331
8.3.5把美史聯盟成員名錄放到網上332
8.4使用DBI來開發Web應用程序334
8.4.1配置Apache服務器來處理CGI腳本335
8.4.2 CGI.pm模塊簡介336
8.4.3從Web腳本連接MySQL服務器342
8.4.4基於Web的數據庫瀏覽器343
8.4.5成績考評項目:分數瀏覽器347
8.4.6美史聯盟:搜索志趣相投的成員350
第9章用PHP語言編寫MySQL程序354
9.1 PHP概述355
9.1.1一個簡單的PHP腳本357
9.1.2利用PHP庫文件實現代碼封裝359
9.1.3簡單的數據檢索頁面363
9.1.4處理語句結果365
9.1.5測試查詢結果裡的NULL值368
9.1.6使用預處理語句369
9.1.7利用佔位符來處理數據引號問題369
9.1.8出錯處理371
9.2 PHP腳本實戰372
9.2.1一個在線錄入分數的應用程序373
9.2.2創建交互式的在線測驗382
9.2.3在線編輯美史聯盟成員信息386
第10章MySQL管理簡介393
10.1 MySQL組件393
……
第11章MySQL數據目錄
第12章MySQL的基本管理
第13章安全性與訪問控制
第14章數據庫維護、備份和復制
作者介紹
Paul DuBois
作家,數據庫管理員,也是開源社區和MySQL社區的領導者。
他為MySQL在線文檔做出了很大貢獻,其著作包括MySQL and Perl for the Web、MySQL Cookbook、Using csh and tcsh和Software Portability with imake。目前,他是Oracle公司MySQL文檔團隊的一名技術作家。