內容簡介
《MySQL高效編程》詳細系統地介紹了
MySQL資料庫的開發技術,從MySQL資料庫以及MySQL中使用的SQL語言基礎入手,再結合具體的網店資料庫實例,重點介紹了事務處理、索引、視圖、存儲過程、存儲函式、觸發器等套用技巧,後介紹了如何使用MySQL資料庫開發照訂龍如Facebook或mixi一樣的立照譽社交網站,並配備了詳細的原始碼解說。
《MySQL高效編程》適用於資料庫開發人員、系統設計人員、系統維護人員、資料庫管理人員、資料庫初學者及其他資料庫從業人員,也可以作為各大中專院校相關專業的參考用書和相關培訓機構的培訓教材。
圖書目錄
第 1部分 MySQL基礎篇
第 1章 資料庫與MySQL 2
1.1 資料庫簡介 2
1.1.1 資料庫管理系統 2
1.1.2 資料庫應用程式 2
1.2 資料庫的種類 3
1.2.1 型/網路型資料庫 4
1.2.2 卡片型資料庫 4
1.2.4 面向對象型資料庫 7
1.2.5 XML型資料庫 8
1.3.1 選擇MySQL資料庫的兩大理由 9
1.3.2 兩種MySQL資料庫類型 10
1.3.3 MySQL資料庫的優勢 10
1.4 SQL語言 11
第 2章 MySQL的安裝與配置 12
2.1 Windows環境下所需的軟體包 12
2.2 下載Windows版安裝軟體包 12
2.3 在Windows下執行安裝程式 13
2.4 啟動MySQL資料庫伺服器 17
2.5 在Linux環境下安裝MySQL 18
第3章 啟動MySQL監視器(Monitor)創建資料庫 21
3.1 確認資料庫運行環境 21
3.2 使用MySQL監視器(Monitor) 21
3.2.1 MySQL監視器的啟動 21
3.2.2 MySQL監視器不能正常啟動的原因 23
3.2.3 MySQL監視器的退出 23
3.2.4 使用歷史命令 24
3.2.5 安全的密碼輸入方式 24
3.3 創建資料庫與表 25
3.3.1 創建資料庫 25
3.3.2 創建表 27
3.3.3 顯示錶信息 30
3.4 數據插入及顯示 31
3.5 CREATE TABLE命令的選項 32
3.5.1 AUTO_INCREMENT自增序列 32
3.5.2 初始化AUTO_INCREMENT 33
3.5.3 其他選項 34
第4章 在MySQL中使用SQL 35
4.1 導入實用小型網店資料庫 35
4.2 SQL語句的種類 36
4.3 在MySQL監視器使用SQL語句的規則 37
4.4 數據的插入/更新/刪除 39
4.4.1 新記錄的插入——INSERT命令 39
4.4.2 更新已存在的記錄——UPDATE命令 40
4.4.3 刪除記錄——DELETE命令 41
4.4.4 數據檢索——SELECT命令 41
4.5.1 運算符 47
4.5.2 資料庫函式 48
4.6 多個表的連線 55
4.6.1 內連線 55
4.6.2 外連線 56
4.6.3 3個或3個以上表間的連線 59
4.6.4 在其他查詢的基礎上進行數據檢索 60
第5章 表的維護和改造 62
5.1 修改表的列結構 62
5.1.1 ALTER TABLE命令 62
5.1.2 改變列的數據類型 62
5.1.3 追加新列 64
5.1.4 改變列的位置 65
5.1.5 改變列名與類型 66
5.1.6 刪除列 67
5.2 剃求洪複製表和刪除表 69
5.2.1 表的列構造與數據的複製 69
5.2.2 表的刪除 71
第 2部分 MySQL套用篇
第6章 事務處理及鎖定 73
6.1 存儲引擎 73
6.1.1 了解MySQL的存儲引擎 73
6.1.2 設定存儲引擎 74
6.1.3 存儲引擎的變更 75
6.2 事務處理 76
6.2.1 為什麼需要事務處理奔漏烏 76
6.2.2 演示簡單的事務處理——刪除後回滾 77
6.2.3 自動提交功能 78
6.2.4 部分回滾——只提交針對資料庫的部分操作 79
6.2.5 事務處理的利用範圍 81
6.3 鎖定與事務處理分離水平 81
6.3.1 為什麼需要鎖定 81
6.3.2 鎖定的種類 82
6.3.3 鎖定粒度 83
6.3.4 多用戶數據更新中理解事務處理的分離水平 83
6.4 深入理解事務處理內部的動作 89
6.4.1 UNDO日誌道迎囑戒 89
6.4.2 REDO日誌 90
第7章 如何在資料庫中使用索引 92
7.1 臭擔什麼是索引 92
7.2 了解索引的內部構造 94
7.2.1 B樹 94
7.2.2 使用索引後的檢索過程 94
7.3 索引的設定與分析 95
7.3.1 為員工信息表創建索引 95
7.3.2 創建多列構成的複合索引及性索引 98
7.3.3 確認員工信息表索引的使用狀態,分析索引優劣 99
7.3.4 索引實效的場合總結 101
第8章 如何在網店資料庫中使用視圖 104
8.1 為什麼需要視圖 104
8.2 視圖的本質 106
8.3 在網店訂單信息檢索中套用視圖 108
8.3.1 創建網店訂單信息視圖 108
8.3.2 確認網店訂單視圖的內容 110
8.3.3 在檢索訂單信息時使用視圖 111
8.3.4 在變更數據(INSERT/UPDATE/DELETE)時使用視圖 112
8.3.5 創建視圖時使用[WITH CHECK OPTION]命令 113
第9章 如何在資料庫中使用存儲過程 116
9.1 什麼是存儲過程 116
9.2 在資料庫中使用存儲過程 118
9.2.1 定義存儲過程 118
9.2.2 確認資料庫中存儲過程 120
9.2.3 執行存儲過程 121
9.3 創建存儲過程的要點 122
9.3.1 定義輸出參數 122
9.3.2 使用IF命令實現多重條件分支 124
9.3.3 使用CASE命令使用多重條件分支 125
9.3.4 定義本地變數 125
9.3.5 使用循環語句 126
9.3.6 WHILE命令與REPEAT命令的區別 128
第 10章 使用函式與觸發器 130
10.1 存儲函式 130
10.1.1 定義存儲函式 130
10.1.2 確認創建成功的存儲函式 132
10.2 觸發器 133
10.2.1 觸發器的基本語法 134
10.2.2 定義觸發器 135
10.2.3 確認創建完成的觸發器 137
10.2.4 測試觸發器 138
10.3 游標 138
第 11章 資料庫管理中檔案的使用 142
11.1 從文本檔案中讀取數據(import) 142
11.1.1 CSV檔案與數據導入 142
11.1.2 導入數據檔案 143
11.2 將表中數據以文本檔案形式導出(export) 144
11.3 執行檔案中保存的SQL命令系列 145
11.3.1 在MySQL監視器中執行檔案中保存的SQL命令系列 145
11.3.2 在命令行視窗中執行檔案中保存的SQL命令系列 146
11.4 檔案中保存SQL的執行結果 148
11.4.1 使用重定向將SQL語句的執行結果輸出到文本檔案中 148
11.4.2 使用tee命令將SQL語句的執行結果保存到檔案中 150
11.5 資料庫整體的備份與恢復 151
11.5.1 備份與恢復的方法 151
11.5.2 使用mysqldump命令對資料庫進行轉儲 152
第3部分 實例篇
第 12章 MySQL+PHP的運行環境 156
12.1 Linux環境中的基本配置 156
12.1.1 Apache伺服器的安裝方法 156
12.1.2 PHP的安裝方法 158
12.2 Windows環境中的基本配置 161
12.2.1 安裝Apache伺服器 161
12.2.2 安裝PHP 164
第 13章 使用PHP+MySQL構建網路留言社區 169
13.1 網路留言社區的系統概要 169
13.2 資料庫表設計以及程式設計 171
13.2.1 表設計 171
13.2.2 程式設計 172
13.3 程式詳細代碼及詳解 173
13.4 關於函式htmlspecialchars 179
第 14章 使用MySQL+PHP構築
SNS網站 181
14.1 SNS網站概要 181
14.1.1 功能簡介 181
14.1.2 界面概況 182
14.2 框架選擇及子系統設計 187
14.2.1 選擇Zend Framework&Smarty的理由 187
14.2.2 系統分析——子系統設計 187
14.2.3 配置Zend Framework&Smarty的運行環境 214
14.2.4 系統共通功能設計 215
14.3 子系統詳細代碼及解說 237
14.3.1 用戶註冊 237
14.3.2 個人簡介 244
14.3.3 我的社交圈 250
14.3.4 我的部落格 259
14.3.5 站內留言 267
附錄A 將默認存儲引擎設定為InnoDB 277
A.1 修改my.ini配置檔案 277
A.2 配置my.cnf檔案 277
附錄B MySQL資料庫的圖形化管理工具 279
B.1 MySQL Front 279
B.2 phpMyAdmin 284
3.5.3 其他選項 34
第4章 在MySQL中使用SQL 35
4.1 導入實用小型網店資料庫 35
4.2 SQL語句的種類 36
4.3 在MySQL監視器使用SQL語句的規則 37
4.4 數據的插入/更新/刪除 39
4.4.1 新記錄的插入——INSERT命令 39
4.4.2 更新已存在的記錄——UPDATE命令 40
4.4.3 刪除記錄——DELETE命令 41
4.4.4 數據檢索——SELECT命令 41
4.5.1 運算符 47
4.5.2 資料庫函式 48
4.6 多個表的連線 55
4.6.1 內連線 55
4.6.2 外連線 56
4.6.3 3個或3個以上表間的連線 59
4.6.4 在其他查詢的基礎上進行數據檢索 60
第5章 表的維護和改造 62
5.1 修改表的列結構 62
5.1.1 ALTER TABLE命令 62
5.1.2 改變列的數據類型 62
5.1.3 追加新列 64
5.1.4 改變列的位置 65
5.1.5 改變列名與類型 66
5.1.6 刪除列 67
5.2 複製表和刪除表 69
5.2.1 表的列構造與數據的複製 69
5.2.2 表的刪除 71
第 2部分 MySQL套用篇
第6章 事務處理及鎖定 73
6.1 存儲引擎 73
6.1.1 了解MySQL的存儲引擎 73
6.1.2 設定存儲引擎 74
6.1.3 存儲引擎的變更 75
6.2 事務處理 76
6.2.1 為什麼需要事務處理 76
6.2.2 演示簡單的事務處理——刪除後回滾 77
6.2.3 自動提交功能 78
6.2.4 部分回滾——只提交針對資料庫的部分操作 79
6.2.5 事務處理的利用範圍 81
6.3 鎖定與事務處理分離水平 81
6.3.1 為什麼需要鎖定 81
6.3.2 鎖定的種類 82
6.3.3 鎖定粒度 83
6.3.4 多用戶數據更新中理解事務處理的分離水平 83
6.4 深入理解事務處理內部的動作 89
6.4.1 UNDO日誌 89
6.4.2 REDO日誌 90
第7章 如何在資料庫中使用索引 92
7.1 什麼是索引 92
7.2 了解索引的內部構造 94
7.2.1 B樹 94
7.2.2 使用索引後的檢索過程 94
7.3 索引的設定與分析 95
7.3.1 為員工信息表創建索引 95
7.3.2 創建多列構成的複合索引及性索引 98
7.3.3 確認員工信息表索引的使用狀態,分析索引優劣 99
7.3.4 索引實效的場合總結 101
第8章 如何在網店資料庫中使用視圖 104
8.1 為什麼需要視圖 104
8.2 視圖的本質 106
8.3 在網店訂單信息檢索中套用視圖 108
8.3.1 創建網店訂單信息視圖 108
8.3.2 確認網店訂單視圖的內容 110
8.3.3 在檢索訂單信息時使用視圖 111
8.3.4 在變更數據(INSERT/UPDATE/DELETE)時使用視圖 112
8.3.5 創建視圖時使用[WITH CHECK OPTION]命令 113
第9章 如何在資料庫中使用存儲過程 116
9.1 什麼是存儲過程 116
9.2 在資料庫中使用存儲過程 118
9.2.1 定義存儲過程 118
9.2.2 確認資料庫中存儲過程 120
9.2.3 執行存儲過程 121
9.3 創建存儲過程的要點 122
9.3.1 定義輸出參數 122
9.3.2 使用IF命令實現多重條件分支 124
9.3.3 使用CASE命令使用多重條件分支 125
9.3.4 定義本地變數 125
9.3.5 使用循環語句 126
9.3.6 WHILE命令與REPEAT命令的區別 128
第 10章 使用函式與觸發器 130
10.1 存儲函式 130
10.1.1 定義存儲函式 130
10.1.2 確認創建成功的存儲函式 132
10.2 觸發器 133
10.2.1 觸發器的基本語法 134
10.2.2 定義觸發器 135
10.2.3 確認創建完成的觸發器 137
10.2.4 測試觸發器 138
10.3 游標 138
第 11章 資料庫管理中檔案的使用 142
11.1 從文本檔案中讀取數據(import) 142
11.1.1 CSV檔案與數據導入 142
11.1.2 導入數據檔案 143
11.2 將表中數據以文本檔案形式導出(export) 144
11.3 執行檔案中保存的SQL命令系列 145
11.3.1 在MySQL監視器中執行檔案中保存的SQL命令系列 145
11.3.2 在命令行視窗中執行檔案中保存的SQL命令系列 146
11.4 檔案中保存SQL的執行結果 148
11.4.1 使用重定向將SQL語句的執行結果輸出到文本檔案中 148
11.4.2 使用tee命令將SQL語句的執行結果保存到檔案中 150
11.5 資料庫整體的備份與恢復 151
11.5.1 備份與恢復的方法 151
11.5.2 使用mysqldump命令對資料庫進行轉儲 152
第3部分 實例篇
第 12章 MySQL+PHP的運行環境 156
12.1 Linux環境中的基本配置 156
12.1.1 Apache伺服器的安裝方法 156
12.1.2 PHP的安裝方法 158
12.2 Windows環境中的基本配置 161
12.2.1 安裝Apache伺服器 161
12.2.2 安裝PHP 164
第 13章 使用PHP+MySQL構建網路留言社區 169
13.1 網路留言社區的系統概要 169
13.2 資料庫表設計以及程式設計 171
13.2.1 表設計 171
13.2.2 程式設計 172
13.3 程式詳細代碼及詳解 173
13.4 關於函式htmlspecialchars 179
第 14章 使用MySQL+PHP構築
SNS網站 181
14.1 SNS網站概要 181
14.1.1 功能簡介 181
14.1.2 界面概況 182
14.2 框架選擇及子系統設計 187
14.2.1 選擇Zend Framework&Smarty的理由 187
14.2.2 系統分析——子系統設計 187
14.2.3 配置Zend Framework&Smarty的運行環境 214
14.2.4 系統共通功能設計 215
14.3 子系統詳細代碼及解說 237
14.3.1 用戶註冊 237
14.3.2 個人簡介 244
14.3.3 我的社交圈 250
14.3.4 我的部落格 259
14.3.5 站內留言 267
附錄A 將默認存儲引擎設定為InnoDB 277
A.1 修改my.ini配置檔案 277
A.2 配置my.cnf檔案 277
附錄B MySQL資料庫的圖形化管理工具 279
B.1 MySQL Front 279
B.2 phpMyAdmin 284