
掃描右側(cè)圖片或微信搜索 “ Java技術(shù)分享屋 ” ,回復(fù) “ 驗(yàn)證碼 ” ,獲取驗(yàn)證密碼。
本資料僅供讀者預(yù)覽及學(xué)習(xí)交流使用,不能用于商業(yè)用途,請在下載后24小時內(nèi)刪除。如果喜歡,請購買正版!
一.資料圖片
二.資料簡介
本書結(jié)合SQL實(shí)踐與實(shí)際案例,整合了實(shí)用的解決方案與洞見,可幫助大家解決復(fù)雜的問題,設(shè)計出能簡化數(shù)據(jù)管理的數(shù)據(jù)庫。作者擁有擔(dān)任世界*數(shù)據(jù)庫顧問與講師的豐富經(jīng)驗(yàn),在本書中歸納了編寫高質(zhì)量SQL語句的61個具體方法,并提供不同SQL版本的差異詳情,無論你使用何種SQL版本都能從中獲益。書中提供了大量清晰、務(wù)實(shí)的解釋,以及專家的建議與大量實(shí)用的代碼。本書除了介紹語法之外,還會討論數(shù)據(jù)庫設(shè)計的佳實(shí)踐、層次結(jié)構(gòu)管理與元數(shù)據(jù)等議題。若你對SQL已經(jīng)有基本的認(rèn)識,本書將能幫助你成為解決SQL問題的專家。書中內(nèi)容涵蓋各種SQL版本:IBMDB2、MicrosoftAccess、MicrosoftSQLServer、MySQL、OracleDatabase與PostgreSQL。三.資料目錄
本書贊譽(yù)
譯者序
序
前言
致謝
關(guān)于作者
關(guān)于技術(shù)編輯
第1章 數(shù)據(jù)模型設(shè)計1
第1條:確保所有表都有主鍵1
第2條:避免存儲冗余數(shù)據(jù)4
第3條:消除重復(fù)數(shù)據(jù)組7
第4條:每列只存儲一個屬性9
第5條:理解為什么存儲計算列通常有害無益13
第6條:定義外鍵以確保引用完整性16
第7條:確保表間關(guān)系的合理性19
第8條:當(dāng)?shù)谌妒讲粔驎r,采用更多范式22
第9條:非規(guī)范化數(shù)據(jù)倉庫27
第2章 可編程性與索引設(shè)計30
第10條:創(chuàng)建索引時空值的影響30
第11條:創(chuàng)建索引時謹(jǐn)慎考慮以最小化索引和數(shù)據(jù)掃描35
第12條:索引不只是過濾37
第13條:不要過度使用觸發(fā)器41
第14條:使用過濾索引包含或排除數(shù)據(jù)子集45
第15條:使用聲明式約束替代編碼校驗(yàn)47
第16條:了解數(shù)據(jù)庫使用的SQL方言并編寫相應(yīng)的代碼48
第17條:了解何時在索引中使用計算結(jié)果51
第3章 當(dāng)你不能改變設(shè)計時55
第18條:使用視圖來簡化不能更改的內(nèi)容55
第19條:使用ETL將非關(guān)系數(shù)據(jù)轉(zhuǎn)換為有用的信息60
第20條:創(chuàng)建匯總表并維護(hù)64
第21條:使用UNION語句將非規(guī)范化數(shù)據(jù)列轉(zhuǎn)行66
第4章 過濾與查找數(shù)據(jù)72
第22條:了解關(guān)系代數(shù)及其如何在SQL中實(shí)現(xiàn)72
第23條:查找不匹配或缺失的記錄78
第24條:了解何時使用CASE解決問題79
第25條:了解解決多條件查詢的技術(shù)83
第26條:如需完美匹配,先對數(shù)據(jù)進(jìn)行除操作88
第27條:如何按時間范圍正確地過濾日期和時間的列91
第28條:書寫可參數(shù)化搜索的查詢以確保引擎使用索引94
第29條:正確地定義“左”連接的“右”側(cè)97
第5章 聚合100
第30條:理解GROUP BY的工作原理100
第31條:簡化GROUP BY子句106
第32條:利用GROUP BY或HAVING解決復(fù)雜的問題109
第33條:避免使用GROUP BY來查找最大值或最小值113
第34條:使用OUTER JOIN時避免獲取錯誤的COUNT()117
第35條:測試HAVING COUNT(x) [某數(shù)時包含零值記錄121
第36條:使用DISTINCT獲取不重復(fù)的計數(shù)123
第37條:知道如何使用窗口函數(shù)126
第38條:創(chuàng)建行號與排名129
第39條:創(chuàng)建可移動聚合函數(shù)131
第6章 子查詢136
第40條:了解在何處使用子查詢136
第41條:了解關(guān)聯(lián)和非關(guān)聯(lián)子查詢的差異140
第42條:盡可能使用公共表表達(dá)式而不是子查詢145
第43條:使用連接而非子查詢創(chuàng)建更高效的查詢151
第7章 獲取與分析元數(shù)據(jù)154
第44條:了解如何使用系統(tǒng)的查詢分析器154
第45條:學(xué)習(xí)獲取數(shù)據(jù)庫的元數(shù)據(jù)164
第46條:理解執(zhí)行計劃的工作原理168
第8章 笛卡兒積175
第47條:生成兩張表所有行的組合并標(biāo)示一張表中間接關(guān)聯(lián)另一張表的列175
第48條:理解如何以等分量排名177
第49條:知道如何對表中的行配對181
第50條:理解如何列出類別與前三偏好185
第9章 計數(shù)表189
第51條:根據(jù)計數(shù)表內(nèi)定義的參數(shù)生成空行189
第52條:使用計數(shù)表和窗口函數(shù)生成序列193
第53條:根據(jù)計數(shù)表內(nèi)定義的范圍生成行196
第54條:根據(jù)計數(shù)表定義的值范圍轉(zhuǎn)換某個表中的值199
第55條:使用日期表簡化日期計算205
第56條:創(chuàng)建在某個范圍內(nèi)所有日期的日程表209
第57條:使用計數(shù)表行轉(zhuǎn)列212
第10章 層次數(shù)據(jù)建模217
第58條:從鄰接列表模型開始218
第59條:對不常更新的數(shù)據(jù)使用嵌套集以提升查詢性能220
第60條:使用存儲路徑簡化設(shè)置與搜索222
第61條:使用祖先遍歷閉包做復(fù)雜搜索224
附錄 日期與時間類型、運(yùn)算符和函數(shù)228