PDF
本書有DRM加密保護,需使用HyRead閱讀軟體開啟
  • Effective SQL中文版:寫出良好SQL的61個具體做法
  • 點閱:335
  • 譯自:Effective SQL:61 specific ways to write better SQL
  • 作者: John L. Viescas, Douglas J. Steele, Ben G. Clothier著 , 楊尊一譯
  • 出版社:碁峰資訊
  • 出版年:2017[民106]
  • ISBN:978-986-476-504-1 ; 986-476-504-3
  • 格式:PDF
  • 附註:原紙本書ISBN: 9789864764358 含索引 附錄: 時間與日期型別、操作, 以及函式

內容簡介
 
“與其瞎忙或四處尋找答案,請幫自己一個忙:直接買這本書吧!”
-Dave Stokes,MySQL社群經理,Oracle Corporation
 

Effective SQL整合實務方案與洞見,協助你解決複雜的問題,以及設計出能簡化資料管理的資料庫。本書結合最佳實踐方法與實務案例,涵蓋各種SQL版本:IBM DB2、Microsoft Access、Microsoft SQL Server、MySQL、Oracle Database與PostgreSQL。
 
作者借鑒世界級資料庫顧問與講師的豐富經驗,歸納了寫出良好SQL的61個具體做法,並提供不同SQL版本中的差別,無論你是使用何種SQL版本都能從中獲益。
 
本書提供清楚、務實的解釋,專家的絕招與大量實用的程式碼。除了語法之外,也討論資料庫設計最佳化、階層管理與元資料等各種議題。若你對SQL已經有基本認識,這本指南將能幫助你成為解決SQL問題的專家。
 
‧打造更好的資料模型並改正有問題的模型
‧實作提升查詢效能的索引
‧處理你不能控制的外部資料來源
‧高效率的擷取並彙整你所需的資訊
‧撰寫更有彈性的子查詢
‧分析與讀取各種資料庫的元資料
‧使用笛卡兒積(Cartesian product)與對應表格,解決傳統JOIN無法處理的問題
‧建構階層資料模型:管理SQL的取捨與缺點


作者簡介
 
John L. Viescas
 
具有45年以上的資料庫顧問經驗。從1993年開業以來為各種企業提供Access與SQL Server顧問服務。任職於Applied Data Research期間領導研究、開發與支援IBM主機資料庫產品的專家團隊。他也是《SQL Queries for Mere Mortals第三版》作者。

 
Douglas J. Steele
 
過去45年專注於資料庫與資料模型。擔任Microsoft MVP長達17年,合著了《Microsoft Access Solutions》。
 
Ben G. Clothier
 
從2009起即擔任MVP與Access/SQL Server架構師,合著了《Professional Access 2013 Programming》。


  • 序(第xi頁)
  • 致謝(第xii頁)
  • 關於作者(第xiii頁)
  • 前言(第xvi頁)
  • 第 1 章 資料模型設計(第1頁)
    • 作法01 確定所有資料表都有主鍵(第1頁)
    • 作法02 消除重複儲存資料(第4頁)
    • 作法03 去除重複群組(第8頁)
    • 作法04 每個欄只儲存一個屬性(第11頁)
    • 作法05 儲存計算出的資料通常不是好主意(第14頁)
    • 作法06 定義外來鍵以保護參考完整性(第18頁)
    • 作法07 確保資料表關係的合理(第22頁)
    • 作法08 3NF不夠時,更多的正規化(第25頁)
    • 作法09 對資訊倉儲使用反正規化(第31頁)
  • 第 2 章 程式化與索引設計(第35頁)
    • 作法10 建構索引時的空(第35頁)
    • 作法11 仔細考慮索引的建構以減少索引與資料掃描(第40頁)
    • 作法12 索引不只用於過濾(第44頁)
    • 作法13 不要濫用觸發器(第48頁)
    • 作法14 以過濾索引包括或排除一組資料(第52頁)
    • 作法15 宣告約束代替程式檢查(第55頁)
    • 作法16 認識你的產品使用的SQL並據此撰寫(第57頁)
    • 作法17 知道何時使用索引中的計算結果(第60頁)
  • 第 3 章 不能改變設計時(第65頁)
    • 作法18 使用檢視表簡化無法改變的部分(第65頁)
    • 作法19 使用ETL將非關聯式資料轉換成資訊(第71頁)
    • 作法20 建構匯總資料表並加以維護(第75頁)
    • 作法21 使用UNION陳述“反轉”非正規化資料(第78頁)
  • 第 4 章 過濾與搜尋資料(第85頁)
    • 作法22 認識關聯代數與如何以SQL實作(第85頁)
    • 作法23 找出不相符或不存在的紀錄(第92頁)
    • 作法24 使用CASE解決問題的時機(第94頁)
    • 作法25 解決多條件問題的技巧(第99頁)
    • 作法26 需要完全符合時使用除法(第105頁)
    • 作法27 正確過濾時間日期欄的日期範圍(第108頁)
    • 作法28 撰寫可做搜尋引數的查詢以確保引擎會使用索引(第112頁)
    • 作法29 正確過濾左連接的右側(第117頁)
  • 第 5 章 彙整(第121頁)
    • 作法30 認識GROUP BY如何運作(第121頁)
    • 作法31 維持小GROUP BY句子(第128頁)
    • 作法32 利用GROUP BY/HAVING解決複雜問題(第131頁)
    • 作法33 不用GROUP BY找出最大或最小值(第136頁)
    • 作法34 避免使用OUTER JOIN的COUNT()錯誤(第141頁)
    • 作法35 測試HAVING COUNT(x) <某數時包含零值列(第145頁)
    • 作法36 使用DISTINCT取得獨特計數(第149頁)
    • 作法37 認識如何使用窗口函式(第152頁)
    • 作法38 產生列號與排名(第155頁)
    • 作法39 產生動態彙整(第157頁)
  • 第 6 章 子查詢(第163頁)
    • 作法40 認識何時可以使用子查詢(第163頁)
    • 作法41 認識關聯與無關聯子查詢的差別(第168頁)
    • 作法42 可能的話,以通用資料表運算式替代子查詢(第174頁)
    • 作法43 使用連接建構比子查詢更有效率的查詢(第181頁)
  • 第 7 章 取得與分析元資料(第185頁)
    • 作法44 學習使用系統的查詢分析工具(第185頁)
    • 作法45 學習取得資料庫的元資料(第196頁)
    • 作法46 認識執行計劃如何運作(第201頁)
  • 第 8 章 笛卡兒積(第209頁)
    • 作法47 產生兩資料表的列組合並標示一個表中間接關聯另一個表的列(第209頁)
    • 作法48 認識如何以等分量排名(第212頁)
    • 作法49 認識如何對資料表中的列配對(第217頁)
    • 作法50 認識如何列出類別與前三優先(第222頁)
  • 第 9 章 對應表(第227頁)
    • 作法51 使用對應表根據參數產生空列(第227頁)
    • 作法52 使用對應表與窗口函式產生序列(第231頁)
    • 作法53 根據對應表的值產生多個列(第236頁)
    • 作法54 根據對應表中的值範圍轉換資料表的值(第240頁)
    • 作法55 使用日期資料表簡化日期計算(第246頁)
    • 作法56 建構列出範圍內所有日期的日曆表(第252頁)
    • 作法57 以對應表旋轉資料(第255頁)
  • 第 10 章 建構階層資料模型(第261頁)
    • 作法58 以鄰接表模型作為起點(第262頁)
    • 作法59 對不常修改的階層使用套疊集合以提升查詢效能(第264頁)
    • 作法60 使用儲存路徑以簡化設置與搜尋(第267頁)
    • 作法61 使用祖先遍歷閉包做複雜搜尋(第269頁)
  • 附錄 時間與日期型別、操作,以及函式(第273頁)
    • IBM DB2(第273頁)
    • Microsoft Access(第276頁)
    • Microsoft SQL Server(第278頁)
    • MySQL(第281頁)
    • Oracle(第285頁)
    • PostgreSQL(第287頁)
  • 索引(第289頁)
紙本書 NT$ 450
單本電子書
NT$ 315

還沒安裝 HyRead 3 嗎?馬上免費安裝~
QR Code