|
-- 會員 / 註冊 --
|
|
|
|
MySQL核心技術與最佳實踐 ( 簡體 字) |
作者:孔祥盛 | 類別:1. -> 資料庫 -> MySQL |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 38290 詢問書籍請說出此書號!【缺書】 NT售價: 390 元 |
出版日:5/1/2014 |
頁數:439 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115337696 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介: 作為世界上最受歡迎的開源數據庫管理系統,MySQL具有成本低廉、體積小、便于安裝、性能優越、功能強大等特點,很多企業將MySQL作為首選數據庫管理系統。《MySQL核心技術與最佳實踐》從關系數據庫設計、MySQL基礎、MySQL編程、MySQL管理及維護4個角度,深入淺出地對MySQL的核心技術進行了詳細的介紹,并通過綜合實訓提供了MySQL核心技術的最佳實踐。 《MySQL核心技術與最佳實踐》盡量將抽象問題形象化、具體化,復雜問題圖形化、簡單化,突出自學和模仿的特點,內容豐富,講解深入,具有很強的實戰性和可操作性。《MySQL核心技術與最佳實踐》入門門檻低,適合所有數據庫初學者快速入門,非常適合用做培訓機構的培訓資料。 《MySQL核心技術與最佳實踐》內容豐富、講解深入,非常適合數據庫開發人員、數據庫管理人員以及其他數據庫從業人員閱讀,同時也是面向廣大數據庫愛好者的實用參考書。 |
目錄:第一篇 關系數據庫設計
第1章 數據庫設計概述 2 1.1 數據庫概述 2 1.1.1 關系數據庫管理系統 2 1.1.2 關系數據庫 3 1.1.3 結構化查詢語言SQL 4 1.2 數據庫設計的相關知識 5 1.2.1 商業知識和溝通技能 5 1.2.2 數據庫設計輔助工具 5 1.2.3 “選課系統”概述 6 1.2.4 定義問題域 7 1.2.5 編碼規范 8 1.3 E-R圖 9 1.3.1 實體和屬性 9 1.3.2 關系 10 1.3.3 E-R圖的設計原則 12 1.4 關系數據庫設計 14 1.4.1 為每個實體建立一張數據庫表 15 1.4.2 為每張表定義一個主鍵 15 1.4.3 增加外鍵表示一對多關系 16 1.4.4 建立新表表示多對多關系 18 1.4.5 為字段選擇合適的數據類型 19 1.4.6 定義約束(constraint)條件 19 1.4.7 評價數據庫表設計的質量 21 1.4.8 使用規范化減少數據冗余 21 1.4.9 避免數據經常發生變化 25 習題 26
第二篇 MySQL基礎
第2章 MySQL基礎知識 30 2.1 MySQL概述 30 2.1.1 MySQL的特點 30 2.1.2 MySQL服務的安裝 32 2.1.3 MySQL服務的配置 34 2.1.4 啟動與停止MySQL服務 40 2.1.5 MySQL配置文件 41 2.1.6 MySQL客戶機 41 2.1.7 連接MySQL服務器 42 2.2 字符集以及字符序設置 44 2.2.1 字符集及字符序概念 44 2.2.2 MySQL字符集與字符序 45 2.2.3 MySQL字符集的轉換過程 46 2.2.4 MySQL字符集的設置 47 2.2.5 SQL腳本文件 48 2.3 MySQL數據庫管理 49 2.3.1 創建數據庫 49 2.3.2 查看數據庫 50 2.3.3 顯示數據庫結構 50 2.3.4 選擇當前操作的數據庫 51 2.3.5 刪除數據庫 51 2.4 MySQL表管理 51 2.4.1 MyISAM和InnoDB存儲引擎 51 2.4.2 設置默認的存儲引擎 52 2.4.3 創建數據庫表 53 2.4.4 顯示表結構 54 2.4.5 表記錄的管理 54 2.4.6 InnoDB表空間 57 2.4.7 刪除表 59 2.5 系統變量 59 2.5.1 全局系統變量與會話系統變量 59 2.5.2 查看系統變量的值 60 2.5.3 設置系統變量的值 62 2.6 MySQL數據庫備份和恢復 63 習題 64
第3章 MySQL表結構的管理 66 3.1 MySQL數據類型 66 3.1.1 MySQL整數類型 66 3.1.2 MySQL小數類型 67 3.1.3 MySQL字符串類型 67 3.1.4 MySQL日期類型 68 3.1.5 MySQL復合類型 71 3.1.6 MySQL二進制類型 72 3.1.7 選擇合適的數據類型 72 3.2 創建表 73 3.2.1 設置約束 74 3.2.2 設置自增型字段 78 3.2.3 其他選項的設置 78 3.2.4 創建“選課系統”數據庫表 79 3.2.5 復制一個表結構 80 3.3 修改表結構 81 3.3.1 修改字段相關信息 81 3.3.2 修改約束條件 82 3.3.3 修改表的其他選項 83 3.3.4 修改表名 83 3.4 刪除表 84 3.5 索引 84 3.5.1 理解索引 84 3.5.2 索引關鍵字的選取原則 87 3.5.3 索引與約束 88 3.5.4 創建索引 88 3.5.5 刪除索引 90 習題 90
第4章 表記錄的更新操作 91 4.1 表記錄的插入 91 4.1.1 使用insert語句插入新記錄 91 4.1.2 更新操作與字符集 94 4.1.3 關于自增型字段 94 4.1.4 批量插入多條記錄 95 4.1.5 使用insert…select插入結果集 96 4.1.6 使用replace插入新記錄 96 4.2 表記錄的修改 97 4.3 表記錄的刪除 98 4.3.1 使用delete刪除表記錄 98 4.3.2 使用truncate清空表記錄 98 4.4 MySQL特殊字符序列 100 習題 102
第5章 表記錄的檢索 103 5.1 select語句概述 103 5.1.1 使用select子句指定字段列表 104 5.1.2 使用謂詞過濾記錄 105 5.1.3 使用from子句指定數據源 105 5.1.4 多表連接 109 5.2 使用where子句過濾結果集 109 5.2.1 使用單一的條件過濾結果集 110 5.2.2 is NULL運算符 110 5.2.3 select語句與字符集 111 5.2.4 使用邏輯運算符 112 5.2.5 使用like進行模糊查詢 115 5.3 使用order by子句對結果集排序 116 5.4 使用聚合函數匯總結果集 117 5.5 使用group by子句對記錄分組統計 118 5.5.1 group by子句與聚合函數 118 5.5.2 group by子句與having子句 119 5.5.3 group by子句與group_concat()函數 120 5.5.4 group by子句與with rollup選項 120 5.6 合并結果集 121 5.7 子查詢 122 5.7.1 子查詢與比較運算符 122 5.7.2 子查詢與in運算符 123 5.7.3 子查詢與exists邏輯運算符 124 5.7.4 子查詢與any運算符 125 5.7.5 子查詢與all運算符 126 5.8 選課系統綜合查詢 126 5.9 使用正則表達式模糊查詢 129 5.10 全文檢索 131 5.10.1 全文檢索的簡單應用 132 5.10.2 全文檢索方式 135 5.10.3 布爾檢索模式的復雜應用 135 5.10.4 MySQL全文檢索的注意事項 137 5.10.5 InnoDB表的全文檢索 137 習題 138
第三篇 MySQL編程
第6章 MySQL編程基礎 140 6.1 MySQL編程基礎知識 140 6.1.1 常量 140 6.1.2 用戶自定義變量 142 6.1.3 運算符與表達式 147 6.1.4 begin-end語句塊 149 6.1.5 重置命令結束標記 149 6.2 自定義函數 150 6.2.1 創建自定義函數的語法格式 150 6.2.2 函數的創建與調用 151 6.2.3 函數的維護 153 6.2.4 條件控制語句 154 6.2.5 循環語句 156 6.3 系統函數 160 6.3.1 數學函數 160 6.3.2 字符串函數 162 6.3.3 數據類型轉換函數 168 6.3.4 條件控制函數 169 6.3.5 系統信息函數 170 6.3.6 日期和時間函數 171 6.3.7 其他常用的MySQL函數 177 6.4 中文全文檢索的模擬實現 179 習題 181
第7章 視圖與觸發器 183 7.1 視圖 183 7.1.1 創建視圖 183 7.1.2 查看視圖的定義 184 7.1.3 視圖在“選課系統”中的應用 185 7.1.4 視圖的作用 186 7.1.5 刪除視圖 187 7.1.6 檢查視圖 187 7.1.7 local與cascade檢查視圖 188 7.2 觸發器 189 7.2.1 準備工作 190 7.2.2 使用觸發器實現檢查約束 191 7.2.3 使用觸發器維護冗余數據 192 7.2.4 使用觸發器模擬外鍵級聯選項 193 7.2.5 查看觸發器的定義 194 7.2.6 刪除觸發器 195 7.2.7 使用觸發器的注意事項 195 7.3 臨時表 196 7.3.1 臨時表概述 196 7.3.2 臨時表的創建、查看與刪除 196 7.3.3 “選課系統”中臨時表的使用 197 7.3.4 使用臨時表的注意事項 198 7.4 派生表(derived table) 198 7.5 子查詢、視圖、臨時表、派生表 199 習題 200
第8章 存儲過程與游標 201 8.1 存儲過程 201 8.1.1 創建存儲過程的語法格式 201 8.1.2 存儲過程的調用 202 8.1.3 “選課系統”的存儲過程 203 8.1.4 查看存儲過程的定義 206 8.1.5 刪除存儲過程 208 8.1.6 存儲過程與函數的比較 208 8.2 錯誤觸發條件和錯誤處理 209 8.2.1 自定義錯誤處理程序 209 8.2.2 自定義錯誤觸發條件 211 8.2.3 自定義錯誤處理程序說明 212 8.3 游標 212 8.3.1 使用游標 212 8.3.2 游標在“選課系統”中的使用 213 8.4 預處理SQL語句 215 8.4.1 預處理SQL語句使用步驟 215 8.4.2 “選課系統”中預處理SQL語句的使用 216 8.4.3 預處理SQL語句的復雜應用 217 8.4.4 靜態SQL語句與預處理SQL語句 219 8.5 存儲程序的說明 219 習題 220
第9章 事務機制與鎖機制 221 9.1 事務機制 221 9.1.1 事務機制的必要性 221 9.1.2 關閉MySQL自動提交 222 9.1.3 回滾 223 9.1.4 提交 224 9.1.5 事務 225 9.1.6 保存點 226 9.1.7 “選課系統”中的事務 229 9.2 鎖機制 231 9.2.1 鎖機制的必要性 231 9.2.2 MySQL鎖機制的基礎知識 232 9.2.3 MyISAM表的表級鎖 235 9.2.4 InnoDB表的行級鎖 238 9.2.5 “選課系統”中的行級鎖 240 9.2.6 InnoDB表的意向鎖 242 9.2.7 InnoDB行級鎖與索引之間的關系 243 9.2.8 間隙鎖與死鎖 245 9.2.9 死鎖與鎖等待 247 9.3 事務的ACID特性 249 9.3.1 事務的ACID特性 249 9.3.2 事務的隔離級別與并發問題 250 9.3.3 設置事務的隔離級別 251 9.3.4 使用間隙鎖避免幻讀現象 255 9.4 事務與鎖機制注意事項257 習題 257
第四篇 綜合實訓
第10章 網上選課系統的開發 260 10.1 PHP預備知識 260 10.1.1 為何選用B/S結構以及PHP腳本語言 260 10.1.2 PHP腳本語言概述 261 10.1.3 PHP腳本程序的工作流程 262 10.1.4 Web服務器的部署 264 10.1.5 注意事項 266 10.2 軟件開發生命周期SDLC 267 10.3 網上選課系統的系統規劃 267 10.3.1 網上選課系統的目標 267 10.3.2 網上選課系統的可行性分析 268 10.3.3 網上選課系統的項目進度表 268 10.3.4 網上選課系統的人員分工 269 10.4 網上選課系統的系統分析 269 10.4.1 網上選課系統的功能需求分析 270 10.4.2 網上選課系統的非功能需求分析 272 10.5 網上選課系統的系統設計 272 10.6 網上選課系統的系統實施 274 10.6.1 準備工作 274 10.6.2 制作PHP連接MySQL服務器函數 275 10.6.3 制作PHP權限系統函數 276 10.6.4 首頁index.php的開發 277 10.6.5 教師注冊模塊的開發 278 10.6.6 登錄模塊的開發 281 10.6.7 注銷模塊的開發 283 10.6.8 添加班級模塊的開發 283 10.6.9 學生注冊模塊的開發 284 10.6.10 密碼重置模塊 285 10.6.11 申報課程模塊 286 10.6.12 課程列表顯示模塊 287 10.6.13 審核申報課程 289 10.6.14 取消已審核課程 290 10.6.15 瀏覽自己申報的課程 290 10.6.16 刪除課程 291 10.6.17 學生選修或者調換已經審核的課程 292 10.6.18 查看自己選修的課程 293 10.6.19 取消選修課程 294 10.6.20 查看課程的學生信息列表 295 10.6.21 查看選修人數少于30人的課程信息 296 10.7 界面設計與MVC模式 296 10.8 網上選課系統的測試 298 習題 299
第五篇 MySQL管理及維護
第11章 MySQL日志與事件 302 11.1 MySQL日志 302 11.1.1 數據皆需要緩存 302 11.1.2 MySQL錯誤日志 303 11.1.3 MySQL普通查詢日志 303 11.1.4 MySQL慢查詢日志 304 11.1.5 MySQL慢查詢日志的查看 305 11.2 二進制日志 307 11.2.1 啟動二進制日志 307 11.2.2 二進制日志文件內容的查看 308 11.2.3 獲取當前的二進制日志文件及偏移位置 310 11.2.4 使用二進制日志恢復數據庫 310 11.2.5 與MySQL二進制日志有關的參數 311 11.2.6 二進制日志的清理 312 11.3 InnoDB事務日志 312 11.4 日志文件的備份 314 11.5 MySQL事件 314 11.5.1 創建MySQL事件 314 11.5.2 開啟MySQL事件調度器 316 11.5.3 查看MySQL事件的定義 316 11.5.4 刪除MySQL事件的定義 317 習題 317
第12章 MySQL備份與恢復 319 12.1 備份與恢復概述 319 12.1.1 防止數據丟失的方法 319 12.1.2 數據備份概述 320 12.2 邏輯備份與邏輯恢復 321 12.2.1 使用select…into outfile…備份表數據 321 12.2.2 恢復表數據 322 12.2.3 使用mysqldump備份數據庫 325 12.2.4 邏輯備份綜合示例 326 12.2.5 二進制日志恢復數據庫的綜合示例 327 12.3 物理備份與熱備份 329 12.3.1 物理備份的所需文件 329 12.3.2 MyISAM表物理備份、熱備份工具 329 12.3.3 InnoDB表物理備份、熱備份工具 330 12.3.4 Xtrabackup的工作原理 331 12.3.5 使用Xtrabackup實現完全備份與增量備份 333 12.3.6 使用Xtrabackup實現數據庫恢復 333 12.4 MySQL復制(replication) 336 12.4.1 MySQL復制的實現原理 337 12.4.2 MySQL復制的實現 337 12.4.3 復制線程的狀態 339 12.4.4 與復制有關的文件 341 12.4.5 復制的配置 342 12.4.6 MySQL復制模式 344 12.4.7 自增型字段沖突問題 345 12.4.8 事件損壞 345 12.4.9 小結 346 12.5 備份策略 346 習題 347
第13章 MySQL安全管理 348 13.1 MySQL安全管理 348 13.2 MySQL賬戶與權限表 350 13.2.1 grant命令語法格式 350 13.2.2 創建MySQL服務實例級別的賬戶 351 13.2.3 創建MySQL數據庫級別的賬戶 353 13.2.4 創建MySQL表級別的賬戶 356 13.2.5 創建MySQL字段級別的賬戶 357 13.2.6 創建MySQL存儲程序級別的賬戶 359 13.2.7 注意事項 360 13.2.8 host權限表 361 13.3 MySQL賬戶管理 362 13.3.1 使用create user創建MySQL賬戶 362 13.3.2 查看MySQL賬戶信息 362 13.3.3 刪除已有賬戶 363 13.3.4 修改已有賬戶的信息 363 13.3.5 MySQL賬戶的資源次數限制 364 13.3.6 使用更新語句修改MySQL賬戶信息 365 13.3.7 權限的生效時機 365 13.4 MySQL安全管理的注意事項 365 13.4.1 MySQL賬戶名重名問題 366 13.4.2 root賬號密碼丟失問題 368 13.4.3 消除MySQL安全隱患 368 13.4.4 MySQL安全管理的其他注意事項 370 習題 371
第14章 MySQL優化 372 14.1 基礎知識 372 14.1.1 影響數據庫系統性能的組件 372 14.1.2 參數信息與狀態信息 373 14.1.3 緩存機制 373 14.1.4 緩存的分類 374 14.1.5 超時 375 14.2 MySQL連接的優化 377 14.3 緩存的優化 380 14.3.1 查詢緩存Query Cache 380 14.3.2 結果集緩存 382 14.3.3 排序緩存 382 14.3.4 join連接緩存 384 14.3.5 表緩存Cache與表結構定義緩存Cache 385 14.3.6 表掃描緩存buffer 387 14.3.7 MyISAM索引緩存buffer 388 14.3.8 日志緩存 390 14.3.9 預讀機制 391 14.3.10 延遲更新 393 14.3.11 內存表與臨時表 396 14.4 InnoDB優化 398 14.4.1 InnoDB緩存池 398 14.4.2 InnoDB緩存池內部結構 399 14.4.3 InnoDB緩存池預熱 400 14.4.4 InnoDB緩存池的狀態信息 401 14.4.5 常見的InnoDB參數設置 402 14.4.6 InnoDB實時監控 402 14.5 優化表 403 14.5.1 優化表結構 403 14.5.2 表的拆分 403 14.5.3 分區 404 14.5.4 表分析與表檢查 406 14.5.5 NULL值對統計信息的影響 409 14.5.6 記錄的格式 409 14.6 SQL語句優化 411 14.6.1 了解SQL的執行頻率 411 14.6.2 定位執行效率較低的SQL語句 413 14.6.3 分析select語句 413 14.6.4 索引與select語句 416 14.6.5 分頁與select 418 14.6.6 SQL語句其他注意事項 420 14.6.7 profiling性能分析工具 421 14.7 鎖資源的優化 422 14.7.1 表級鎖資源競爭 422 14.7.2 表級鎖資源競爭的解決方案 422 14.7.3 行級鎖的資源競爭 423 14.7.4 行級鎖資源競爭的解決方案 423 14.7.5 禁用InnoDB間隙鎖 424 14.7.6 事務監控與鎖監控 424 14.7.7 元數據鎖metadata locks 425
第15章 MySQL Cluster 427 15.1 MySQL Cluster簡介 427 15.1.1 MySQL集群的組成 427 15.1.2 MySQL集群架構 429 15.2 MySQL Cluster環境搭建 429 15.2.1 準備工作 429 15.2.2 數據節點的配置 430 15.2.3 SQL節點的配置 431 15.2.4 管理節點的配置 433 15.2.5 MySQL集群的啟動 434 15.2.6 集群測試 437
參考文獻 439 |
序: |
|