SQL查詢 從入門到實踐 第4版
內容描述
本書由多年從事SQL方面研究和諮詢工作的*深專家編寫,
重點講解SQL查詢和數據操作的相關主題,包括關係型數據庫和SQL、
SQL基礎、多表操作、匯總和分組數據,以及修改數據集等內容,
針對編寫SQL查詢提供了輕鬆易懂的逐步指導,並包含上百個帶有詳細說明的例子。
附錄列出了所有SQL語句的語法圖和示例數據庫的結構等。
目錄大綱
目錄:
第一部分關係型數據庫和SQL
第1章何謂關係型數據庫2
1.1數據庫類型2
1.2關係模型簡史2
1.3關係型數據庫剖析4
1.4學習關係型數據庫有何好處9
1.5小結10
第2章確保數據庫結構合理11
2.1為何在本書開頭討論數據庫設計11
2.2為何要關心數據庫結構是否合理11
2.3微調列12
2.4微調表17
2.5建立合理的關係25
2.6就這些嗎29
2.7小結29
第3章SQL簡史31
3.1 SQL的起源31
3.2早期的廠商實現32
3.3標準應運而生32
3.4 ANSI/ISO標準的發展歷程33
3.5商用實現36
3.6展望未來36
3.7為何要學習SQL 36
3.8本書基於哪個SQL版本37
3.9小結37
*二部分SQL基礎
第4章創建簡單查詢40
4.1 SELECT簡介40
4.2 SELECT語句41
4.3說點題外話:數據和信息42
4.4將請求轉換為SQL 43
4.5消除重複行47
4.6對信息進行排序48
4.7保存所做的工作51
4.8語句舉例51
4.9小結57
4.10練習57
第5章獲取除簡單列外的其他信息59
5.1何謂表達式59
5.2你要表示哪些類型的數據60
5.3修改數據類型:CAST函數61
5.4指定顯式值62
5.5表達式類型65
5.6在SELECT子句中使用表達式71
5.7空值:Null 75
5.8語句舉例77
5.9小結81
5.10練習82
第6章篩選數據84
6.1使用WHERE提煉信息84
6.2定義查找條件87
6.3使用多個條件98
6.4再談Null:一個注意事項106
6.5以不同的方式表示條件109
6.6語句舉例109
6.7小結114
6.8練習115
第三部分使用多個表
第7章集合思維118
7.1何謂集合118
7.2集合運算119
7.3 SQL集合運算128
7.4小結133
第8章內連接135
8.1何謂連接135
8.2內連接135
8.3內連接的用途145
8.4語句舉例146
8.5小結158
8.6練習158
第9章外連接161
9.1何謂外連接161
9.2左/右外連接162
9.3全外連接173
9.4外連接的用途175
9.5語句舉例176
9.6小結184
9.7練習184
第10章UNION 186
10.1何謂UNION 186
10.2使用UNION編寫查詢187
10.3 UNION的用途194
10.4語句舉例194
10.5小結200
10.6練習200
第11章子查詢202
11.1何謂子查詢202
11.2作為列表達式的子查詢203
11.3作為篩選器的子查詢207
11.4子查詢的用途214
11.5語句舉例215
11.6小結222
11.7練習223
第四部分數據匯總和分組
第12章簡單匯總226
12.1聚合函數226
12.2在篩選器中使用聚合函數233
12.3語句舉例234
12.4小結238
12.5練習238
第13章數據分組240
13.1為何要將數據分組240
13.2 GROUP BY子句242
13.3一些限制247
13.4 GROUP BY的用途249
13.5語句舉例250
13.6小結255
13.7練習255
第14章篩選分組數據257
14.1一種新的篩選方式257
14.2在哪裡篩選更好259
14.3 HAVING的用途263
14.4語句舉例264
14.5小結268
14.6練習269
第五部分修改數據集
第15章更新數據集272
15.1何謂更新272
15.2 UPDATE語句272
15.3有些數據庫系統允許在UPDATE子句中使用連接278
15.4 UPDATE的用途280
15.5語句舉例281
15.6小結289
15.7練習290
第16章插入數據集291
16.1何謂插入291
16.2 INSERT語句292
16.3 INSERT的用途299
16.4語句舉例299
16.5小結305
16.6練習305
第17章刪除數據集307
17.1何謂刪除307
17.2 DELETE語句307
17.3 DELETE的用途311
17.4語句舉例312
17.5小結317
17.6練習317
第六部分解決棘手問題
第18章否定型問題和多條件型問題320
18.1簡單地複習集合320
18.2解決否定型問題323
18.3根據多個肯定條件查找327
18.4語句舉例333
18.5小結343
18.6練習343
第19章條件測試346
19.1條件表達式(CASE) 346
19.2使用CASE解決問題349
19.3語句舉例354
19.4小結361
19.5練習361
第20章使用非連接數據和“驅動”表363
20.1何謂非連接數據363
20.2使用非連接數據解決問題366
20.3使用“驅動”表解決問題367
20.4語句舉例371
20.5小結381
20.6練習382
第21章執行複雜的分組計算384
21.1不同分組的合計384
21.2擴展GROUP BY子句386
21.3使用ROLLUP獲取分層合計387
21.4使用CUBE計算各種組合的匯總393
21.5使用GROUPING SETS合併匯總396
21.6分組技術變種398
21.7語句舉例400
21.8小結405
21.9練習405
第22章將數據劃分到窗口中407
22.1將數據劃分到窗口中有何用407
22.2計算行號419
22.3數據排名420
22.4將數據劃分到五分位區間中424
22.5結合使用窗口和聚合函數426
22.6語句舉例429
22.7小結439
22.8練習439
附錄A SQL標準語法圖441
附錄B示例數據庫的結構453
附錄C與日期和時間相關的數據類型、運算和函數460
附錄D推薦讀物469
結語470
作者介紹
John L. Viescas
擁有50多年經驗的獨立數據庫諮詢師。
職業生涯之初,作為系統分析師,負責為IBM大型機系統設計數據庫應用程序;
後在Applied Data Research任職,負責IBM大型機數據庫產品的研發和客戶支持;1
988年加入Tandem計算機公司,負責開發和實現市場營銷數據庫程序。
1993年自創公司,為全球各種規模的企業提供數據庫諮詢和培訓服務。
從1993年到2015年,創紀錄地每年都被微軟授予“*有價值專家”稱號。
John寫過多部關於數據庫的著作,還為技術刊物寫過許多文章,
並在世界各地的會議和用戶組會議上發表過演講。