发表于2024-11-25
Effective SQL:編寫高質量SQL語句的61條有效方法(英文版) pdf epub mobi txt 電子書 下載 2024
經典原味:麵嚮所有版本SQL方言的編程指南。
構造閤理數據模型,修補現有模型的缺陷。
超強作者陣容,三位微軟專傢聯袂巨獻。
本書全麵係統地介紹瞭SQL語言各方麵的基礎知識以及一些高級特性,包括SQL數據語言、SQL方案語言、數據集操作、子查詢以及內建函數與條件邏輯等內容。書中每個章節講述一個相對獨立的主題,並提供瞭相關示例和練習。涵蓋瞭市場上常用數據庫版本(MySQL 、Oracle 及Microsoft SQL Server等 )。同時針對開發基於數據庫的應用程序,以及日常的數據庫係統管理,本書都展現瞭大量經過實踐檢驗的方法和技巧。讀者可以通過對本書循序漸進地學習快速掌握SQL語言,也可以在實際工作中遇到問題時直接翻閱本書中的相關章節以獲取解決方案。
John L. Viescas是一位有著超過45年從業經驗的獨立數據庫顧問。他從一位係統分析師開始他的職業生涯,為IBM大型機係統設計大型數據庫應用。他在達拉斯的應用數據研究中心工作瞭六年,在那裏他帶領30多名員工負責IBM大型計算機數據庫産品的研究、開發以及客戶支持工作。在應用數據研究工作期間,約翰完成瞭達拉斯德剋薩斯大學的商業金融學位,並以優異的成績畢業。 John 1988年加入Tandem 計算機公司,在那裏他負責在Tandem公司美國西部銷售區開發和實施數據庫的營銷方案。他開發並交付瞭用於技術研討會的關係數據庫管理係統—— NonStop SQL。約翰1989年寫瞭他的*一本書,A Quick Reference Guide to SQL(Microsoft Press,1989),該書一本是對比瞭ANSI-86 SQL 標準、IBM的DB2、微軟的SQL Server、甲骨文公司的Oracle、以及Tandem公司的NonStop SQL之間的語法相似性的研究類書。作者於1992年從Tandem公司公休時寫瞭Running Microsoft Access第一版(Microsoft Press,1992年)。他已經寫瞭四個版本的Running Microsoft Access,以及Running係列的後續作品——三個版本的Microsoft Office Access Inside Out(Microsoft Press,2003、2007、2010)和Building Microsoft Access Applications(Microsoft Press,2005)。他也是暢銷書籍SQL Queries for Mere Mortals(Addison Wesley,2014)第三版的作者。John目前保持著連續多年被微軟授予微機數據庫管理係統*有價值專傢(MVP,Most Valuable Professional)的紀錄(1993年至2015年)。John與他的妻子在法國巴黎定居瞭三十多年。
Douglas J. Steele從事包括大型機和個人機在內的計算機相關的工作超過45年(是的,他一開始是用穿孔卡的!)。在2012退休前,他在一傢大型國際石油公司工作瞭31年多。盡管他職業生涯的高光時刻是通過發展SCCM任務序列將Windows 7推廣到全球超過10萬颱電腦上,但是數據庫和數據建模是他的主要工作方嚮。 Douglas超過17年被微軟認證為*有價值專傢(MVP),他撰寫瞭大量關於Access數據庫的文章,Douglas是Microsoft Access Solutions: Tips, Tricks, and Secrets from Microsoft Access MVPs(Wiley,2010)的閤著者,也是很多書的技術編輯。 Douglas為滑鐵盧大學係統設計工程碩士,專注於設計非傳統電腦用戶的用戶界麵研究。(當然,在七十年代末,很少有人是傳統的電腦用戶!)他的專業研究源於他的音樂背景(他擁有多倫多英國皇傢音樂學院鋼琴演奏準學士學位)。他還癡迷於啤酒並畢業於尼亞加拉學院釀酒及啤酒廠操作管理專業(濱湖尼亞加拉,安大略省)。 Douglas和他的妻子在加拿大安大略省聖凱瑟琳定居超過34年。讀者可以通過郵箱:mvphelp@gmail.com聯係Douglas。 Ben G. Clothier是芝加哥首屈一指的Access和SQL Server開發企業IT Impact公司的解決方案架構師。他曾在著名J Street Technology和Advisicon公司做過自由顧問,主要從事從小型個人解決方案到公司全業務應用程序Access項目的相關工作。值得注意的項目包括一傢水泥公司的工作跟蹤和庫存管理係統、給保險商使用的醫療保險計劃生成器以及國際航運公司的訂單管理係統。
Ben在UtterAccess是係統管理員,並且和Teresa Hennig、George Hepworth、Doug Yudovich閤著瞭Professional Access? 2013 Programming(Wiley,2013);並與Tim Runcie和George Hepworth一起閤著瞭Microsoft? Access in a SharePoint World(Advisicon,2011);Ben還是Microsoft? Access? 2010 Programmer’s Reference(Wiley,2010)一書的特約作者。他擁有微軟SQL Server 2012解決方案認證和MySQL 5認證開發者等證書。從2009年開始Ben一直是微軟的*有價值專傢(MVP)。
影印版,無譯者
本書的寫作團隊實至名歸,給我留下瞭深刻的印象,這麼說並不足以錶達我對本書的喜愛,應當說我被這本書震驚瞭。大多數關於SQL 的書隻會告訴讀者如何去寫SQL,而本書則會告訴讀者為什麼這樣寫;大多數關於SQL 的書會將數據庫設計與實現分開闡述,而本書則將數據庫設計的考量貫穿於SQL 的各種使用場景;大多數關於SQL 的書隻會在閱覽完畢後放在書架上落灰,而本書將成為我的伴手讀物。
Roger Carlson,微軟Access MVP (1996–2015 年)
寫基本的SQL 很簡單,但是寫功能完備且運行高效的SQL 就沒那麼容易瞭,尤其是對於那些有著復雜需求的關鍵業務係統。不過現在有瞭這本優秀的SQL 讀物,無論讀者正在使用哪種數據庫管理係統,都可以快速上手編寫高質量的SQL。
Craig S. Mullins,Mullins Consulting,Inc.,DB2 金牌顧問,IBM 數據分析師
這是一本關於SQL 的佳作。它采用深入淺齣的敘述方式,使得新手也可以理解其內涵。同時,也包含瞭很多高級的SQL 竅門和技巧,能夠讓SQL 老手也受益匪淺。因此,這本書適閤任何程度的讀者,那些對數據庫設計、管理以及SQL 編程方麵有較高要求的讀者都應該閱讀這本書。
Graham Mandeno,數據庫技術顧問,微軟MVP (1996–2015 年)
對於關係型數據庫和基於SQL 的數據庫的設計者和開發者來說,這本書是*佳的資源——一部深入淺齣的讀物,書中有豐富的示例,完美地結閤瞭設計理論與編程實現,這些例子涵蓋瞭當今*常用的數據庫實現,其中包括Oracle、DB2、SQL Server、MySQL、PostgreSQL 等。本書用成熟的技術引導讀者深入學習SQL,比如在關於分層數據和統計錶的講解中,包含瞭其內部實現,以及在使用GROUP BY、EXISTS、IN、關聯或非關聯子查詢、窗口函數、各種連接語句時的性能。此外,書中有不少獨有的有趣示例,也使得這本書在SQL 類著作中格外閃耀。
Tim Quinlan,數據庫架構師,Oracle 認證DBA
對於那些睏在多種SQL 方言之中急需幫助的讀者來說,這本書能夠將你從一團亂麻中拉齣來。本書從SQL 的各種方言中分離齣公有的獨立成分,能夠讓讀者做到“閱後即用”。我從1992 年就開始使用各種SQL 實現,已經算是SQL 方言方麵的老手瞭,但依舊能夠從這本書中學到不少知識。
Tom Moreau 博士,SQL Server MVP(2001–2012 年)
這本書在描述SQL 的使用方麵完美地做到瞭內容豐富、敘述簡潔、易於理解—— 它通過展現如何使用SQL 解決現實世界中的需求問題來告訴讀者構造SQL 查詢的方法,並闡明瞭“數據如何存儲”與“數據如何查詢”之間的聯係,解釋瞭從數據庫中準確且高效地取得結果集的全過程。
Kenneth D. Snell 博士,數據庫技術顧問,前微軟Access MVP
這本書填補瞭一個知識斷檔—— 新手DBA 如何成長為高級DBA—— 本書就像是成長過程的路綫圖、行動指南、羅塞塔石碑,幫助讀者從基礎SQL 應用者變為高階使用者的教練。與其磕磕絆絆地重新發明輪子,或是迷迷糊糊地摸索數據庫的正確使用方法,不如對自己好一點—— 把這本書帶迴傢。你不僅能夠瞭解到可能需要多年摸索纔能見到的各種SQL 的實現技巧,還能深入理解數據庫供應商各種實現的原因。在你學習SQL 的旅途中,這本書能夠為你節省齣很多時間和精力。
Dave Stokes,MySQL 社區管理員,就職於甲骨文公司
對於一個嚴肅的數據庫開發人員,本書屬於必讀書目。它手把手地告訴讀者,SQL 解決現實問題的強大能力。本書的作者們使用瞭淺顯易懂的錶達方式告訴讀者每一種解決方案的利與弊。我們都知道,一個查詢有很多種實現方式,而這本書將告訴讀者為什麼某一種實現比彆的實現更高效。對於這本書,我*鍾愛的部分莫過於每一章*後的總結,它會再次嚮讀者強調要點與陷阱。我要嚮所有的數據庫開發人員推薦這本書。
Leo(theDBguyTM),UtterAccess 社區主席,微軟Access MVP
我認為這本書不僅適閤開發人員,而且適閤數據庫管理員,它能夠告訴讀者,在實現一個特定需求時,如何通過多種方式編寫高效的SQL 實現。我認為,這是一本數據庫相關從業人員的必讀書。推薦這本書的另一個理由,是它涵蓋瞭幾乎所有常見的RDBMS 應用場景,因此,對於那些需要將一種RDBMS 實現方言翻譯為另一種方言的用戶,本書就是你們要找的那本指南。我衷心祝賀本書的作者們,你們的作品無與倫比。
Vivek Sharma,甲骨文公司Oracle 核心技術與混閤雲解決方案部門特邀技術專傢
Introduction 1
A Brief History of SQL 1
Database Systems We Considered 5
Sample Databases 6
Where to Find the Samples on GitHub 7
Summary of the Chapters 8
Chapter 1: Data Model Design 11
Item 1: Verify That All Tables Have a Primary Key 11
Item 2: Eliminate Redundant Storage of Data Items 15
Item 3: Get Rid of Repeating Groups 19
Item 4: Store Only One Property per Column 21
Item 5: Understand Why Storing Calculated Data Is Usually a Bad Idea 25
Item 6: Define Foreign Keys to Protect Referential Integrity 30
Item 7: Be Sure Your Table Relationships Make Sense 33
Item 8: When 3NF Is Not Enough, Normalize More 37
Item 9: Use Denormalization for Information Warehouses 43
Chapter 2: Programmability and Index Design 47
Item 10: Factor in Nulls When Creating Indexes 47
Item 11: Carefully Consider Creation of Indexes to Minimize Index and Data Scanning 52
Item 12: Use Indexes for More than Just Filtering 56
Item 13: Don’t Go Overboard with Triggers 61
Item 14: Consider Using a Filtered Index to Include or
Exclude a Subset of Data 65
Item 15: Use Declarative Constraints Instead of Programming Checks 68
Item 16: Know Which SQL Dialect Your Product Uses and Write Accordingly 70
Item 17: Know When to Use Calculated Results in Indexes 74
Chapter 3: When You Can’t Change the Design 79
Item 18: Use Views to Simplify What Cannot Be Changed 79
Item 19: Use ETL to Turn Nonrelational Data into Information 85
Item 20: Create Summary Tables and Maintain Them 90
Item 21: Use UNION Statements to “Unpivot” Non-normalized Data 94
Chapter 4: Filtering and Finding Data 101
Item 22: Understand Relational Algebra and How It Is Implemented in SQL 101
Item 23: Find Non-matches or Missing Records 108
Item 24: Know When to Use CASE to Solve a Problem 110
Item 25: Know Techniques to Solve Multiple-Criteria
Problems 115
Item 26: Divide Your Data If You Need a Perfect Match 120
Item 27: Know How to Correctly Filter a Range of Dates on a Column Containing Both Date and Time 124
Item 28: Write Sargable Queries to Ensure That the Engine Will Use Indexes 127
Item 29: Correctly Filter the “Right” Side of a “Left” Join 132
Chapter 5: Aggregation 135
Item 30: Understand How GROUP BY Works 135
Item 31: Keep the GROUP BY Clause Small 142
Item 32: Leverage GROUP BY/HAVING to Solve Complex Problems 145
Item 33: Find Maximum or Minimum Values Without Using GROUP BY 150
Item 34: Avoid Getting an Erroneous COUNT() When Using OUTER JOIN 156
Item 35: Include Zero-Value Rows When Testing for HAVING COUNT(x) < Some Number 159
Item 36: Use DISTINCT to Get Distinct Counts 163
Item 37: Know How to Use Window Functions 166
Item 38: Create Row Numbers and Rank a Row over
Other Rows 169
Item 39: Create a Moving Aggregate 172
Chapter 6: Subqueries 179
Item 40: Know Where You Can Use Subqueries 179
Item 41: Know the Difference between Correlated and Non-correlated Subqueries 184
Item 42: If Possible, Use Common Table Expressions Instead of Subqueries 190
Item 43: Create More Efficient Queries Using Joins Rather than Subqueries 197
Chapter 7: Getting and Analyzing Metadata 201
Item 44: Learn to Use Your System’s Query Analyzer 201
Item 45: Learn to Get Metadata about Your Database 212
Item 46: Understand How the Execution Plan Works 217
Chapter 8: Cartesian Products 227
Item 47: Produce Combinations of Rows between Two Tables and Flag Rows in the Second That Indirectly Relate to the First 227
Item 48: Understand How to Rank Rows by Equal
Quantiles 231
Item 49: Know How to Pair Rows in a Table with All Other Rows 235
Item 50: Understand How to List Categories and the Count of First, Second, or Third Preferences 240
Chapter 9: Tally Tables 247
Item 51: Use a Tally Table to Generate Null Rows Based on a Parameter 247
Item 52: Use a Tally Table and Window Functions for Sequencing 252
Item 53: Generate Multiple Rows Based on Range Values in a Tally Table 257
Item 54: Convert a Value in One Table Based on a
Effective SQL:編寫高質量SQL語句的61條有效方法(英文版) 下載 mobi epub pdf txt 電子書
看後在評論看後在評論
評分沒想到是英文的
評分看後在評論看後在評論
評分很好
評分沒想到是英文的
評分沒想到是英文的
評分看後在評論看後在評論
評分看後在評論看後在評論
評分看後在評論看後在評論
Effective SQL:編寫高質量SQL語句的61條有效方法(英文版) pdf epub mobi txt 電子書 下載