出版時間:2012-4-15 出版社:機械工業(yè)出版社華章公司 作者:姜承堯 頁數(shù):324
Tag標(biāo)簽:無
前言
前言:為什么要寫這本書多年來,我一直在和各種不同的數(shù)據(jù)庫打交道,見證了MySQL從一個小型的關(guān)系型數(shù)據(jù)庫發(fā)展成為各大互聯(lián)網(wǎng)企業(yè)的核心數(shù)據(jù)庫系統(tǒng)的過程,期間參與了一些大大小小的項目開發(fā)工作,并成功地幫助開發(fā)人員構(gòu)建了一些可靠的、健壯的應(yīng)用程序。在這個過程中我積累了一些經(jīng)驗,正是這些不斷累積的經(jīng)驗賦予了我靈感,于是有了本書。這本書實際上反映了這些年來我做了哪些事情,匯集了很多同行每天可能會遇到的一些問題,并給出了解決方案。本書是“MySQL技術(shù)內(nèi)幕”系列的第二本書,我將其命名為“SQL編程”而非“SQL查詢”,因為我想讓更多的開發(fā)人員和DBA意識到SQL也是一門語言,與我們平時接觸的C語言等編程語言并沒有什么不同。正因如此,我們也要追求SQL的編程之美。然而與其他語言不同的是,SQL語言不僅是面向過程的語言,更多的時候,通過SQL語言提供的面向集合的思想可以解決數(shù)據(jù)庫中遇到的很多問題。當(dāng)然,SQL語言本身也提供了面向過程的方法,但是如果使用不當(dāng),會在數(shù)據(jù)庫性能方面遭遇夢魘。SQL編程需要掌握的知識遠(yuǎn)比想象中多,只有掌握各種知識,綜合運用面向過程和面向集合的思想,才能真正解決所遇到的問題。不要迷信網(wǎng)上的任何“神話”,不要被自己或他人的經(jīng)驗所左右。我一直堅信,只有理解了數(shù)據(jù)庫內(nèi)部運行的原理,才能承自然之道,“乘天地之正,而御六氣之辯”,做到真正的“無招勝有招”。另一方面,MySQL數(shù)據(jù)庫目前大多被用于互聯(lián)網(wǎng)的聯(lián)機事務(wù)處理應(yīng)用中,給大部分用戶造成MySQL數(shù)據(jù)庫不能執(zhí)行復(fù)雜SQL查詢的錯覺。本書將列舉各種復(fù)雜的查詢,使用戶了解MySQL數(shù)據(jù)庫處理復(fù)雜查詢的執(zhí)行過程。此外,由于MySQL數(shù)據(jù)庫的不斷發(fā)展,其分支版本已經(jīng)開始支持Hash Join。相信隨著時間的推移以及MySQL數(shù)據(jù)庫本身的不斷發(fā)展,MySQL數(shù)據(jù)庫同樣會在聯(lián)機分析處理應(yīng)用中占有一席之地。大家需要做好這方面的準(zhǔn)備,這也是本書將提供給你的。最后,希望這本書可以引領(lǐng)開發(fā)人員及DBA從不同的角度來看待SQL語言和數(shù)據(jù)庫的開發(fā)工作。倘若這本書能解決你在實際生產(chǎn)環(huán)境中遇到的問題,我會非常榮幸。讀者對象數(shù)據(jù)庫管理員數(shù)據(jù)庫開發(fā)人員數(shù)據(jù)庫架構(gòu)設(shè)計師各類應(yīng)用程序開發(fā)人員如何閱讀本書書中的示例一共用到三個數(shù)據(jù)庫文件:一個是employees數(shù)據(jù)庫,該數(shù)據(jù)庫是MySQL數(shù)據(jù)庫官方提供的示例數(shù)據(jù)庫,主要用來模擬公司員工的數(shù)據(jù),用戶可以通過官網(wǎng)下載(http://dev.mysql.com/doc/index-other.html);另一個是dbt3數(shù)據(jù)庫,是通過Database Test Suite程序生成的,該數(shù)據(jù)庫較大,主要用來展示一些復(fù)雜的查詢;還有一個tpcc數(shù)據(jù)庫,是一個模擬TPC-C測試的數(shù)據(jù)庫,用戶可以從http://code.google.com/p/david-mysql-tools/下載。本書一共有10章,每章都像一本迷你書,可以單獨成冊。用戶可以有選擇地閱讀,但是推薦根據(jù)本書的組織方式進(jìn)行閱讀,這樣會更具有條理性。第1章 SQL編程主要介紹了MySQL數(shù)據(jù)庫的發(fā)展歷史和什么是SQL編程。希望讀者能通過該章了解MySQL的深厚歷史背景,并且知道它已經(jīng)不再是一個小型關(guān)系型數(shù)據(jù)庫系統(tǒng)。此外,還重點強調(diào)了SQL編程的三個階段,希望讀者可以通過本書的學(xué)習(xí)達(dá)到最后的融合階段。第2章 數(shù)據(jù)類型詳細(xì)介紹了MySQL數(shù)據(jù)庫中的各種數(shù)據(jù)類型和與之相應(yīng)的各種SQL編程問題。數(shù)據(jù)類型是SQL編程的基石。每一位MySQL數(shù)據(jù)庫應(yīng)用的開發(fā)人員都應(yīng)該好好閱讀本章。第3章 查詢處理深入探討了邏輯查詢與物理查詢。邏輯查詢幫助讀者理解數(shù)據(jù)庫應(yīng)該得到怎樣的結(jié)果;物理查詢是MySQL數(shù)據(jù)庫通過分析表的結(jié)構(gòu),選擇最小成本的執(zhí)行計劃來處理SQL語句,但是無論怎樣,最終的結(jié)果應(yīng)該和邏輯查詢一樣。第4章 子查詢子查詢是被很多開發(fā)人員和DBA詬病的一個方面。如何正確地理解MySQL子查詢的執(zhí)行方式并實現(xiàn)對其優(yōu)化,是本章最重要的任務(wù)。本章的最后還講解了MySQL分支版本MariaDB對子查詢的優(yōu)化。在MariaDB數(shù)據(jù)庫中,子查詢再也不是什么難題了。第5章 聯(lián)接與集合操作聯(lián)接和集合是關(guān)系數(shù)據(jù)庫中常見的操作,該章詳細(xì)而深入地介紹了MySQL數(shù)據(jù)庫中的各種聯(lián)接及其內(nèi)部的實現(xiàn)算法,同時也介紹了MariaDB數(shù)據(jù)庫中引入的Hash Join,彌補了MySQL數(shù)據(jù)庫在OLAP應(yīng)用中的短板。本章最后針對集合的各種操作給出了解決方案。第6章 聚合和旋轉(zhuǎn)操作聚合與旋轉(zhuǎn)在報表系統(tǒng)中非常常見,本章主要講解了MySQL數(shù)據(jù)庫對上述兩種操作的處理方法,以及一些常見問題的解決方案。第7章 游標(biāo)游標(biāo)是面向過程的編程方式,這與前幾章介紹的面向集合的編程方式不同。雖然在大多數(shù)情況下游標(biāo)處理的性能較低,但是只要在正確的場合使用,游標(biāo)也會使SQL編程的效率得到極大提升。第8章 事務(wù)編程全面講解了MySQL數(shù)據(jù)庫中關(guān)于事務(wù)的各種編程技巧,同時也對事物的分類進(jìn)行了詳細(xì)的介紹。本章主要面向以InnoDB存儲引擎為核心的應(yīng)用編程。第9章 索引一般來說,索引可以提高SQL語句的執(zhí)行速度,但是并非所有情況都是如此。本章詳細(xì)分析了各種索引的內(nèi)部實現(xiàn),以及哪種情況下使用索引可以帶來效率的提升。這對SQL編程來說非常重要。第10章 分區(qū)分區(qū)是設(shè)計表時需要考慮的重要問題之一。正確和有效地分區(qū)會對SQL編程帶來巨大的影響。本章告訴讀者應(yīng)該如何分區(qū),以及如何通過分區(qū)來進(jìn)行SQL編程。
內(nèi)容概要
本書是暢銷書《MySQL技術(shù)內(nèi)幕:InnoDB存儲引擎》的姊妹篇,深刻揭示了MySQL中SQL編程的精髓與奧秘,能為開發(fā)者和DBA們利用SQL語言解決各種與開發(fā)和管理相關(guān)的MySQL難題提供很好的指導(dǎo)和幫助。
全書一共10章,全面探討了MySQL中SQL編程的各種方法、技巧與最佳實踐。第1章首先介紹了SQL編程的概念、數(shù)據(jù)庫的應(yīng)用類型以及SQL查詢分析器,然后介紹了SQL編程的三個階段,希望讀者通過本書的學(xué)習(xí)能達(dá)到最后的融合階段。第2章全面講解了MySQL中的各種數(shù)據(jù)類型和與之相對應(yīng)的各種編程問題。第3章深入探討了邏輯查詢與物理查詢的原理與方法。第4章的主題是子查詢,不僅講解了各種常用的子查詢方法及其優(yōu)化,而且還講解了MariaDB對子查詢的優(yōu)化。第5章首先詳細(xì)地分析了MySQL中的各種聯(lián)接及其內(nèi)部的實現(xiàn)算法,以及MariaDB數(shù)據(jù)庫中引入的Hash
Join,然后針對關(guān)于集合的各種操作給出了解決方案。第6章分享了聚合和旋轉(zhuǎn)操作的方法與技巧,并對一些經(jīng)典的常見問題給出了解決方案。第7章深入闡述了游標(biāo)的使用,重點在于如何通過正確地使用游標(biāo)來提高SQL編程的效率。第8章講解了關(guān)于事務(wù)的各種編程技巧,同時對事務(wù)的分類進(jìn)行了詳細(xì)闡述。第9章詳細(xì)分析了各種索引的內(nèi)部實現(xiàn),探討了如何使用索引來提升查詢效率。第10章介紹了分區(qū)的方法與技巧,闡明了如何通過分區(qū)來進(jìn)行SQL編程。
無論你是開發(fā)人員還是DBA,無論你是需要一本SQL查詢手冊還是希望系統(tǒng)深入地學(xué)習(xí)SQL編程,本書都會是不錯的選擇。
作者簡介
姜承堯(David
Jiang),資深MySQL數(shù)據(jù)庫專家,MySQL開源分支版本InnoSQL
的創(chuàng)始人,獨立數(shù)據(jù)庫咨詢顧問不僅擅長于數(shù)據(jù)庫的管理和維護(hù),還擅長于數(shù)據(jù)庫的開發(fā),同時一直致力于MySQL數(shù)據(jù)庫底層實現(xiàn)原理的研究和探索,對高性能數(shù)據(jù)庫和數(shù)據(jù)倉庫也有深刻而獨到的理解。目前就職于網(wǎng)易研究院,擔(dān)任后臺技術(shù)中心技術(shù)經(jīng)理一職,從事MySQL數(shù)據(jù)庫底層以及云的相關(guān)的開發(fā)工作。曾領(lǐng)導(dǎo)并參與了多個大型核心數(shù)據(jù)庫應(yīng)用的設(shè)計、實施、管理和維護(hù),實戰(zhàn)經(jīng)驗非常豐富。活躍于開源數(shù)據(jù)庫和開源軟件領(lǐng)域,是著名開源社區(qū)ChinaUnix
MySQL版塊的版主,熱衷于分享MySQL數(shù)據(jù)庫的各種成功應(yīng)用實踐。
書籍目錄
序
前言
第1章 SQL編程
1.1 MySQL數(shù)據(jù)庫
1.1.1 MySQL數(shù)據(jù)庫歷史
1.1.2 MySQL數(shù)據(jù)庫的分支版本
1.2 SQL編程
1.3 數(shù)據(jù)庫的應(yīng)用類型
1.3.1 OLTP
1.3.2 OLAP
1.3.3 OLTP與OLAP的比較
1.3.4 MySQL存儲引擎及其面向的數(shù)據(jù)庫應(yīng)用
1.4 圖形化的SQL查詢分析器
1.4.1 MySQL Workbench
1.4.2 Toad for MySQL
1.4.3 iMySQL-Front
1.5 小結(jié)
第2章 數(shù)據(jù)類型
2.1 類型屬性
2.1.1 UNSIGNED
2.1.2 ZEROFILL
2.2 SQL_MODE設(shè)置
2.3 日期和時間類型
2.3.1 DATETIME和 DATE
2.3.2 TIMESTAMP
2.3.3 YEAR和TIME
2.3.4 與日期和時間相關(guān)的函數(shù)
2.4 關(guān)于日期的經(jīng)典SQL編程問題
2.4.1 生日問題
2.4.2 重疊問題
2.4.3 星期數(shù)的問題
2.5 數(shù)字類型
2.5.1 整型
2.5.2 浮點型(非精確類型)
2.5.3 高精度類型
2.5.4 位類型
2.6 關(guān)于數(shù)字的經(jīng)典SQL編程問題
2.6.1 數(shù)字輔助表
2.6.2 連續(xù)范圍問題
2.7 字符類型
2.7.1 字符集
2.7.2 排序規(guī)則
2.7.3 CHAR和VARCHAR
2.7.4 BINARY和VARBINARY
2.7.5 BLOB和TEXT
2.7.6 ENUM和SET類型
2.8 小結(jié)
第3章 查詢處理
3.1 邏輯查詢處理
3.1.1 執(zhí)行笛卡兒積
3.1.2 應(yīng)用ON過濾器
3.1.3 添加外部行
3.1.4 應(yīng)用WHERE過濾器
3.1.5 分組
3.1.6 應(yīng)用ROLLUP或CUBE
3.1.7 應(yīng)用HAVING過濾器
3.1.8 處理SELECT列表
3.1.9 應(yīng)用DISTINCT子句
3.1.10 應(yīng)用ORDER BY子句
3.1.11 LIMIT子句
3.2 物理查詢處理
3.3 小結(jié)
第4章 子查詢
4.1 子查詢概述
4.1.1 子查詢的優(yōu)點和限制
4.1.2 使用子查詢進(jìn)行比較
4.1.3 使用ANY、IN和SOME進(jìn)行子查詢
4.1.4 使用ALL進(jìn)行子查詢
4.2 獨立子查詢
4.3 相關(guān)子查詢
4.4 EXISTS謂詞
4.4.1 EXISTS
4.4.2 NOT EXISTS
4.5 派生表
4.6 子查詢可以解決的經(jīng)典問題
4.6.1 行號
4.6.2 分區(qū)
4.6.3 最小缺失值問題
4.6.4 缺失范圍和連續(xù)范圍
4.7 MariaDB對SEMI JOIN的優(yōu)化
4.7.1 概述
4.7.2 Table Pullout優(yōu)化
4.7.3 Duplicate Weedout 優(yōu)化
4.7.4 Materialization優(yōu)化
4.8 小結(jié)
第5章 聯(lián)接與集合操作
5.1 聯(lián)接查詢
5.1.1 新舊查詢語法
5.1.2 CROSS JOIN
5.1.3 INNER JOIN
5.1.4 OUTER JOIN
5.1.5 NATURAL JOIN
5.1.6 STRAIGHT_JOIN
5.2 其他聯(lián)接分類
5.2.1 SELF JOIN
5.2.2 NONEQUI JOIN
5.2.3 SEMI JOIN和ANTI SEMI JOIN
5.3 多表聯(lián)接
5.4 滑動訂單問題
5.5 聯(lián)接算法
5.5.1 Simple Nested-Loops Join算法
5.5.2 Block Nested-Loops Join算法
5.5.3 Batched Key Access Join算法
5.5.4 Classic Hash Join算法
5.6 集合操作
5.6.1 集合操作的概述
5.6.2 UNION DISTINCT和UNION ALL
5.6.3 EXCEPT
5.6.4 INTERSECT
5.7 小結(jié)
第6章 聚合和旋轉(zhuǎn)操作
6.1 聚合
6.1.1 聚合函數(shù)
6.1.2 聚合的算法
6.2 附加屬性聚合
6.3 連續(xù)聚合
6.3.1 累積聚合
6.3.2 滑動聚合
6.3.3 年初至今聚合
6.4 Pivoting
6.4.1 開放架構(gòu)
6.4.2 關(guān)系除法
6.4.3 格式化聚合數(shù)據(jù)
6.5 Unpivoting
6.6 CUBE 和 ROLLUP
6.6.1 ROLLUP
6.6.2 CUBE
6.7 小結(jié)
第7章 游標(biāo)
7.1 面向集合與面向過程的開發(fā)
7.2 游標(biāo)的使用
7.3 游標(biāo)的開銷
7.4 使用游標(biāo)解決問題
7.4.1 游標(biāo)的性能分析
7.4.2 連續(xù)聚合
7.4.3 最大會話數(shù)
7.5 小結(jié)
第8章 事務(wù)編程
8.1 事務(wù)概述
8.2 事務(wù)的分類
8.3 事務(wù)控制語句
8.4 隱式提交的SQL語句
8.5 事務(wù)的隔離級別
8.6 分布式事務(wù)編程
8.7 不好的事務(wù)編程習(xí)慣
8.7.1 在循環(huán)中提交
8.7.2 使用自動提交
8.7.3 使用自動回滾
8.8 長事務(wù)
8.9 小結(jié)
第9章 索引
9.1 緩沖池、順序讀取與隨機讀取
9.2 數(shù)據(jù)結(jié)構(gòu)與算法
9.2.1 二分查找法
9.2.2 二叉查找樹和平衡二叉樹
9.3 B+樹
9.3.1 B+樹的插入操作
9.3.2 B+樹的刪除操作
9.4 B+樹索引
9.4.1 InnoDB B+樹索引
9.4.2 MyISAM B+樹索引
9.5 Cardinality
9.5.1 什么是Cardinality
9.5.2 InnoDB存儲引擎怎樣統(tǒng)計Cardinality
9.6 B+樹索引的使用
9.6.1 不同應(yīng)用中B+樹索引的使用
9.6.2 聯(lián)合索引
9.6.3 覆蓋索引
9.6.4 優(yōu)化器選擇不使用索引的情況
9.6.5 INDEX HINT
9.7 Multi-Range Read
9.8 Index Condition Pushdown
9.9 T樹索引
9.9.1 T樹概述
9.9.2 T樹的查找、插入和刪除操作
9.9.3 T樹的旋轉(zhuǎn)
9.10 哈希索引
9.10.1 散列表
9.10.2 InnoDB存儲引擎中的散列算法
9.10.3 自適應(yīng)哈希索引
9.11 小結(jié)
第10章 分區(qū)
10.1 分區(qū)概述
10.2 分區(qū)類型
10.2.1 RANGE分區(qū)
10.2.2 LIST分區(qū)
10.2.3 HASH分區(qū)
10.2.4 KEY分區(qū)
10.2.5 COLUMNS分區(qū)
10.3 子分區(qū)
10.4 分區(qū)中的NULL值
10.5 分區(qū)和性能
10.6 在表和分區(qū)間交換數(shù)據(jù)
10.7 小結(jié)
章節(jié)摘錄
版權(quán)頁:第1章 SQL編程1.1 MySQL數(shù)據(jù)庫1.2 SQL編程1.3 數(shù)據(jù)庫的應(yīng)用類型1.4 圖形化的SQL查詢分析器1.5 小結(jié)SQL是一種編程語言,用來解決關(guān)系數(shù)據(jù)庫中的相關(guān)問題。SQL編程就是通過SQL語句來解決特定問題的一種編程方式。本章將介紹MySQL數(shù)據(jù)庫中與SQL編程相關(guān)的基礎(chǔ)知識,幫助SQL用戶更好地理解MySQL數(shù)據(jù)庫、數(shù)據(jù)庫應(yīng)用類型,以及與SQL編程相關(guān)的特定問題。1.1 MySQL數(shù)據(jù)庫1.1.1 MySQL數(shù)據(jù)庫歷史 毫無疑問,目前MySQL已經(jīng)成為最為流行的開源關(guān)系數(shù)據(jù)庫系統(tǒng),并且一步一步地占領(lǐng)了原有商業(yè)數(shù)據(jù)庫的市場。可以看到Google、Facebook、Yahoo、網(wǎng)易、久游等大公司都在使用MySQL數(shù)據(jù)庫,甚至將其作為核心應(yīng)用的數(shù)據(jù)庫系統(tǒng)。而MySQL數(shù)據(jù)庫也不再僅僅應(yīng)用于Web項目,其扮演的角色更為豐富。在網(wǎng)絡(luò)游戲領(lǐng)域中,大部分的后臺數(shù)據(jù)庫都采用MySQL數(shù)據(jù)庫,如大家比較熟悉的勁舞團(tuán)、魔獸世界、Second Life等。很少能看到有哪個網(wǎng)絡(luò)游戲數(shù)據(jù)庫不是采用MySQL數(shù)據(jù)庫的。此外,MySQL數(shù)據(jù)庫已成功應(yīng)用于中國外匯交易中心、中國移動、國家電網(wǎng)等許多項目中。越來越多的企業(yè)級項目應(yīng)用“見證”了MySQL數(shù)據(jù)庫的飛速發(fā)展,并預(yù)示著MySQL數(shù)據(jù)庫本身正在逐漸完善并走向成熟。以前會有人詬病MySQL為什么沒有視圖,沒有存儲過程,沒有觸發(fā)器,沒有事件調(diào)度器。而現(xiàn)在,MySQL還沒有什么呢?經(jīng)歷了MySQL 5.0和5.1的發(fā)展,如今MySQL數(shù)據(jù)庫迎來了重要的5.5版本。在了解MySQL 5.5帶給我們的新特性之前,我們先來看看MySQL的發(fā)展歷程。簡單來說,MySQL數(shù)據(jù)庫的發(fā)展可以概括為三個階段:初期開源數(shù)據(jù)庫階段。Sun MySQL階段。Oracle MySQL階段。很多人以為MySQL是最近15年內(nèi)才出現(xiàn)的數(shù)據(jù)庫,其實MySQL數(shù)據(jù)庫的歷史可以追溯到1979年,那時Bill Gates退學(xué)沒多久,微軟公司也才剛剛起步,而Larry的Oracle公司也才成立不久。那時有一個天才程序員Monty Widenius為一個名為TcX的小公司打工,并且用BASIC設(shè)計了一個報表工具,使其可以在4MHz主頻和16KB內(nèi)存的計算機上運行。沒過多久,Monty又將此工具用C語言進(jìn)行了重寫并移植到了UNIX平臺。當(dāng)時,這只是一個很底層的且僅面向報表的存儲引擎,名叫Unireg。雖然TcX這個小公司資源有限,但Monty天賦極高,面對資源有限的不利條件,反而更能發(fā)揮他的潛能。Monty總是力圖寫出最高效的代碼,并因此養(yǎng)成了習(xí)慣。與Monty在一起的還有一些別的同事,很少有人能堅持把那些代碼持續(xù)寫到20年后,而Monty卻做到了。
媒體關(guān)注與評論
David是ChinaUnix社區(qū)資深的MySQL版主,幾年來,在論壇里熱心地為廣大MySQL DBA和開發(fā)者解答了很多問題,非常受歡迎。David是MySQL領(lǐng)域的專家,不僅多年來一直在國內(nèi)的大型企業(yè)從事MySQL相關(guān)的工作,而且還為MySQL編寫了許多開源工具和性能擴展補丁,對MySQL數(shù)據(jù)庫的使用(管理與開發(fā))和原理都非常精通。本書是David多年工作經(jīng)驗的結(jié)晶,系統(tǒng)深入地揭示了MySQL中SQL編程的方方面面,能為我們解決復(fù)雜的MySQL數(shù)據(jù)庫問題提供很好的指導(dǎo)。強烈推薦!——ChinaUnix社區(qū)&ITpub社區(qū)本書的內(nèi)容是告訴你如何使用SQL語言指揮數(shù)據(jù)庫這個“龐然大物”。人與人的溝通需要技巧,與數(shù)據(jù)庫溝通更需要技巧,而一切溝通都需要先從熟悉語言開始。作者沉迷于數(shù)據(jù)庫的世界多年,有天賦,也肯下苦功,是我見過的最優(yōu)秀的DBA之一。他熟知SQL的各種語法技巧,結(jié)合日常工作中的經(jīng)驗和領(lǐng)悟,寫出了這本“內(nèi)幕”。相信我,不管你是需要一本SQL查詢手冊,還是想要獲得更多SQL編程的經(jīng)驗技巧,本書都不可不讀。——顧懿 久游網(wǎng)首席運營官我是幾年前在某個技術(shù)社區(qū)中認(rèn)識David的,記得他總能用深入原理性的闡述來解答網(wǎng)友的疑惑。從中可以看出他對MySQL尤其是InnoDB引擎的理解之深,他的上一本著作《MySQL技術(shù)內(nèi)幕:InnoDB存儲引擎》推出后廣獲好評,填補了業(yè)界系統(tǒng)化講解InnoDB引擎原理的空白。本書詳細(xì)講解了子查詢、表連接、聚合、事務(wù)、索引等SQL編程各環(huán)節(jié)所涉及的內(nèi)容,全面揭示了MySQL中SQL編程的奧妙,用事實證明了MySQL也是可以處理復(fù)雜SQL查詢的,而非只是個玩具。在這里,我向開發(fā)人員、DBA以及所有對MySQL有興趣的讀者推薦本書,將使你受益匪淺。相信它將再次掀起習(xí)MySQL的熱潮。——葉金榮 ChinaUnix社區(qū) MySQL版主無論是與MySQL數(shù)據(jù)庫相關(guān)的開發(fā)工作,還是MySQL數(shù)據(jù)庫的管理與維護(hù),SQL語言都發(fā)揮著極為重要的作用。所以,對于數(shù)據(jù)管理人員(DBA)和開發(fā)人員來說,掌握SQL編程技巧是全面了解數(shù)據(jù)庫系統(tǒng)的必備條件之一。本書結(jié)合MySQL的歷史、輔助工具、內(nèi)部工作機制等多個角度詳細(xì)講解了SQL編程的方法,展示了SQL在MySQL數(shù)據(jù)庫編程方面(尤其是性能方面)的高級技巧。對于想全面深入地學(xué)習(xí)SQL編程和MySQL數(shù)據(jù)庫的讀者而言,本書不可多得。——郭鵬 《Cassandra實戰(zhàn)》作者、專注于Hadoop&NoSQL技術(shù)研究
編輯推薦
《MySQL技術(shù)內(nèi)幕:SQL編程》系統(tǒng)深入地講解了MySQL數(shù)據(jù)庫中SQL編程的各種方法、技巧和最佳實踐,推薦DBA和開發(fā)人員參閱!暢銷書《MySQL技術(shù)內(nèi)幕:InnoDB存儲引擎》姊妹篇,揭示SQL編程的奧秘,演繹SQL編程之美資深MySQL專家親自執(zhí)筆,多個技術(shù)社區(qū)和多位數(shù)據(jù)庫專家聯(lián)袂推薦。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載