开启左侧

Effective SQL 中文版:寫出良好SQL的61個具體做法

[复制链接]
  • 地区:台湾
  • 格式:PDF
  • 文件大小:62M
  • 时间:
  • 类别:学习
  • 价格:6共享币
  • 提示:本站推荐经典投资资料
  “與其瞎忙或四處尋找答案,請幫自己一個忙:直接買這本書吧!”
( |* 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
回复

使用道具 举报

懒得打字嘛,点击快捷回复 【回复乱码 永久禁言】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝6

帖子1915

发布主题
推荐素材更多+
广告位

服务电话

15987183307

QQ:1136111231
关注我们 :

QQ- Archiver-手机版-小黑屋-经典-文库- 与你共享

Powered by ynjie.com Array© 2001-2013 ynjie.com  滇ICP备19007624号-1