“與其瞎忙或四處尋找答案,請幫自己一個忙:直接買這本書吧!”
( |* J8 H) ^1 d3 u* ?3 ~2 D -Dave Stokes,MySQL社群經理,Oracle Corporation
% V/ X8 {) }, y7 I5 Z( @" |! R Effective SQL整合實務方案與洞見,協助你解決複雜的問題,以及設計出能簡化資料管理的資料庫。本書結合最佳實踐方法與實務案例,涵蓋各種SQL版本:IBM DB2、Microsoft Access、Microsoft SQL Server、MySQL、Oracle Database與PostgreSQL。
- e, m6 K# C1 s' t! o 作者借鑒世界級資料庫顧問與講師的豐富經驗,歸納了寫出良好SQL的61個具體做法,並提供不同SQL版本中的差別,無論你是使用何種SQL版本都能從中獲益。
* W4 X3 H+ e+ H' x: H& Z 本書提供清楚、務實的解釋,專家的絕招與大量實用的程式碼。除了語法之外,也討論資料庫設計最佳化、階層管理與元資料等各種議題。若你對SQL已經有基本認識,這本指南將能幫助你成為解決SQL問題的專家。
/ A$ @# b& L$ ]! G) z 打造更好的資料模型並改正有問題的模型3 @! K% Y6 e7 x. w' @
實作提升查詢效能的索引" C8 }7 q: G$ k5 R2 o, }2 K
處理你不能控制的外部資料來源0 Y$ Y; |) e3 w
高效率的擷取並彙整你所需的資訊) ~ c8 b. f# Q% B) ]
撰寫更有彈性的子查詢7 @. a h4 m; V( y, a9 K9 B6 i
分析與讀取各種資料庫的元資料
2 A0 y4 d4 B4 s, Z' {- z+ Z% R 使用笛卡兒積(Cartesian product)與對應表格,解決傳統JOIN無法處理的問題* K: R) A8 M# t1 B& p1 ~! X
建構階層資料模型:管理SQL的取捨與缺點目錄
5 Y6 z+ D, c! `. \# G9 M. z 序" {7 e, n- D4 t W
致謝. Q+ R4 S6 `, |0 f# w
關於作者) H8 ?" F4 i% q- H
前言! g7 ?) e* B& w. g
第1 章 資料模型設計" s- T7 k7 T( c( p" O; P
做法01 確定所有資料表都有主鍵
3 Q! g8 [. c4 b1 N0 f# w: C' H' o 做法02 消除重複儲存資料
/ z1 p7 ~ W% f9 { 做法03 去除重複群組2 G4 G' C8 e Q
做法04 每個欄只儲存一個屬性3 t2 s0 ^3 M. x* w- ~
做法05 儲存計算出的資料通常不是好主意' k% a, Q+ W" F. n0 i
做法06 定義外來鍵以保護參考完整性
* l* n( |; s0 |5 t8 ^5 F- n; Q+ M 做法07 確保資料表關係的合理
) v2 [1 L, L6 F9 P 做法08 3NF 不夠時,更多的正規化
' h4 z* n0 f! t" x7 d 做法09 對資訊倉儲使用反正規化! S( C4 ^$ ^ D4 v2 w
第2 章 程式化與索引設計
% V2 r! z& Z0 b 做法10 建構索引時的空% w+ R0 A' Y+ f" u( n
做法11 仔細考慮索引的建構以減少索引與資料掃描& j& _) A& i# J4 Y
做法12 索引不只用於過濾$ C* C$ |; I+ A8 i3 m3 D# v+ M
做法13 不要濫用觸發器
8 d( d: T1 Q3 c3 }: j$ n0 T Q, A8 | 做法14 以過濾索引包括或排除一組資料! e d7 f: ~, Z8 l+ M
做法15 宣告約束代替程式檢查# j! f A& K+ ^
做法16 認識你的產品使用的SQL 並據此撰寫
) h Q" A3 X6 Y! {4 X ^$ N 做法17 知道何時使用索引中的計算結果
; x" _7 a% C9 {' g |' ~" q( x 第3 章 不能改變設計時6 a+ t$ N I1 f
做法18 使用檢視表簡化無法改變的部分
3 w1 M, `4 V$ V9 B 做法19 使用ETL 將非關聯式資料轉換成資訊3 l6 P5 Y8 `1 y$ f( Q! i9 b- N
做法20 建構匯總資料表並加以維護
; K4 v2 j `" r( i4 X& X/ n) F 做法21 使用UNION 陳述“反轉”非正規化資料4 p3 x4 ? C6 g' Y0 d/ j3 V+ f
第4 章 過濾與搜尋資料
$ \* b" b2 {8 q0 H+ v 做法22 認識關聯代數與如何以SQL 實作
' D1 R* p4 H- p: u8 N 做法23 找出不相符或不存在的紀錄
7 k! V2 j! c5 f7 }5 T1 n7 K 做法24 使用CASE 解決問題的時機
, S# L {0 @, k6 e$ L8 r 做法25 解決多條件問題的技巧! j! @( d. {" Y# s! ]8 y
做法26 需要完全符合時使用除法
' t- e) e! o0 T! a! S 做法27 正確過濾時間日期欄的日期範圍
9 |. f7 Y) z4 U$ I 做法28 撰寫可做搜尋引數的查詢以確保引擎會使用索引
, p7 T! K: s/ `' ~1 Z; }% e 做法29 正確過濾左連接的右側- W; i5 f$ N4 Q) Q Z$ v
第5 章 彙整
. [( V/ z0 d8 T+ q 做法30 認識GROUP BY 如何運作
# [6 P" j/ s; P2 R3 N, c 做法31 維持小GROUP BY 句子; ]4 y/ n/ C+ }8 c+ K
做法32 利用GROUP BY/HAVING 解決複雜問題
) w; Y0 Y0 c2 L. G& l9 V4 n 做法33 不用GROUP BY 找出最大或最小值' l A7 a, ^6 {2 n$ o5 x# F' S: `
做法34 避免使用OUTER JOIN 的COUNT() 錯誤- ~& \0 H+ z$ M. p0 d2 W
做法35 測試HAVING COUNT(x) < 某數時包含零值列
) e' J2 h) H& \( k: Y7 Y 做法36 使用DISTINCT 取得獨特計數$ R7 N: k! n# Y4 [
做法37 認識如何使用窗口函式+ ]. h7 U$ S; n/ u
做法38 產生列號與排名
$ D$ |1 N& w& u% i9 G5 W' ` 做法39 產生動態彙整
$ y2 T# j7 Q m ^, U 第6 章 子查詢+ b# H7 A& U( s" q9 W2 {( J
做法40 認識何時可以使用子查詢: `5 H X* g9 {2 w8 r# R' k& C
做法41 認識關聯與無關聯子查詢的差別
$ Y8 w3 ~8 y! m5 | 做法42 可能的話,以通用資料表運算式替代子查詢
/ h" W; n$ s' i1 t c 做法43 使用連接建構比子查詢更有效率的查詢% g3 {+ u' f+ A2 f7 `
第7 章 取得與分析元資料
7 t' ]+ g9 t* m; l" a7 n 做法44 學習使用系統的查詢分析工具
- t$ Y% J7 ^5 b7 s) b* L 做法45 學習取得資料庫的元資料5 C5 d r4 s5 j+ o" L; _$ f
做法46 認識執行計劃如何運作
7 u( R- j, W% [% Y$ L( Q$ l1 q i 第8 章 笛卡兒積! a" s% H8 A# E1 J
做法47 產生兩資料表的列組合並標示一個表中間接關聯另一個表的列
, R5 M: k# P0 e. B- I6 ^6 f7 M! q& ` 做法48 認識如何以等分量排名. o$ S/ ^- d8 n4 p( Y
做法49 認識如何對資料表中的列配對, l/ _7 P; P; |
做法50 認識如何列出類別與前三優先
8 k- J( A' b; q 第9 章 對應表
5 ]4 V! Y: N% U 做法51 使用對應表根據參數產生空列6 T4 }9 m2 ^. X+ Y, p3 Q6 H; n
做法52 使用對應表與窗口函式產生序列! c. T! ^$ V/ p! w
做法53 根據對應表的值產生多個列
6 u) I8 K8 j3 I' D; B- v" n+ O6 c 做法54 根據對應表中的值範圍轉換資料表的值
/ w) o: d% B8 u$ w- q, Z 做法55 使用日期資料表簡化日期計算
. d& Z/ D# S1 f8 G) q 做法56 建構列出範圍內所有日期的日曆表
7 p8 L {2 l3 k+ ?4 g; o 做法57 以對應表旋轉資料0 B8 M! d- P9 Z$ h: A
第10 章 建構階層資料模型' @4 g6 n+ M) T# @: T
做法58 以鄰接表模型作為起點0 A" n/ b1 |4 d8 ^0 C% N( S
做法59 對不常修改的階層使用套疊集合以提升查詢效能
- e# g( @7 y V$ `5 {; ^ 做法60 使用儲存路徑以簡化設置與搜尋
f! q& p% |; c) _3 z& P& B 做法61 使用祖先遍歷閉包做複雜搜尋
" q# q' E6 s% I( E 附錄 時間與日期型別、操作,以及函式
, R1 T, I2 x5 o" ~9 R$ y IBM DB22 z% ?) w7 T* v: f- X/ r/ d3 [
Microsoft Access
+ i5 R4 l4 I T3 U Microsoft SQL Server, h( y: l7 ?( V! O$ M
MySQL
% E, L5 {6 H8 S" Z" d( i" ` Oracle
# C3 z- e$ x6 r% l4 ?5 P' T PostgreSQL
: B: {% P' ?% A8 M5 [; `+ p: F! n 索引3 g) ]' ]' D$ R) l
游客,本下载内容需要支付 6共享币,购买后显示下载链接立即支付
+ ^! e- G, D! ~* d) d6 E8 s Q, c. u2 D& {1 I! p, D% L$ V2 Q
|