作 者:董旭陽 著
定 價:89
出 版 社:電子工業出版社
出版日期:2021年10月01日
頁 數:348
裝 幀:平裝
ISBN:9787121421402
"★ 采用全新SQL:2019標準,緊跟產業發展趨勢,解鎖Z前沿SQL特性★ 讓你了解並學習現代化的SQL語言和編程思想,而不僅僅局限於功能★ 作者在數據庫領域深耕十餘年,擁有豐富的數據庫理論知識和實踐經驗★ 全覆蓋從SQL基礎查詢到高級分析、從數據庫設計到查詢優化等內容★ 用循序漸進的方式和簡單易懂的案例分析,透徹講解每個SQL知識點★ 提供了5種主流數據庫的代碼實現,包括:MySQL 8.0Oracle Database 21cMicrosoft SQL Se等
●第1章一切皆關繫.1
1.1數據庫.1
1.1.1數據庫的發展歷史.2
1.1.2數據庫管理繫統.3
1.2關繫型數據庫.4
1.2.1數據結構.4
1.2.2關繫操作.5
1.2.3完整性約束.5
1.3SQL簡介.6
1.3.1SQL的歷史.7
1.3.2語法特性.7
1.3.3面向集合.8
1.3.4標準與實現.9
1.4小結.10
第2章查詢初體驗.11
2.1基本檢索功能.11
2.1.1查詢指定字段.12
2.1.2查詢全部字段.13
2.1.3快速查詢信息.13
2.2實現數據過濾.14
2.2.1簡單過濾條件.15
2.2.2空值判斷條件.17
2.2.3文本模糊查找.18
2.2.4組合過濾條件.21
2.2.5排除重復數據.23
2.3從無序到有序.24
2.3.1基於單個字段排序.24
2.3.2基於多個字段排序.25
2.3.3基於表達式排序.26
2.3.4空值的排序位置.27
2.3.5中文的排序方式.28
2.4限定結果數量.30
2.4.1Top-N排行榜30
2.4.2數據分頁顯示.31
2.5SQL注釋.34
2.5.1單行注釋.34
2.5.2多行注釋.34
2.5.3特殊注釋.35
2.6小結.35
第3章邏輯處理功能.36
3.1函數和運算.36
3.1.1函數概述.37
3.1.2數值函數.37
3.1.3字符函數.41
3.1.4日期函數.47
3.1.5轉換函數.50
3.1.6案例分析.51
3.2使用別名.53
3.2.1列別名.53
3.2.2表別名.54
3.3條件表達式.54
3.3.1簡單CASE表達式.55
3.3.2搜索CASE表達式.56
3.3.3DECODE函數58
3.3.4IF函數.59
3.3.5IIF函數.59
3.3.6案例分析.60
3.4小結.61
第4章數據分組與彙總62
4.1數據彙總.62
4.1.1聚合函數.63
4.1.2使用COUNT函數統計行數63
4.1.3使用AVG函數計算平均值.64
4.1.4使用SUM函數計算總和.66
4.1.5使用MAX函數返回優選值66
4.1.6使用MIN函數返回最小值67
4.1.7使用LISTAGG函數連接字符串67
4.2數據分組.69
4.2.1創建數據分組.69
4.2.2進行組內彙總.70
4.2.3空值分為一組.71
4.2.4常見的語法問題.72
4.3再次過濾數據.73
4.3.1使用HAVING過濾分組結果73
4.3.2WHERE與HAVING的區別73
4.4多維數據分析.74
4.4.1小計、合計與總計.74
4.4.2交叉統計報表.75
4.4.3自定義維度統計.76
4.4.4GROUPING函數78
4.5案例分析.79
4.5.1案例一:實現行列轉換.79
4.5.2案例二:銷售數據分析.80
4.6小結.83
第5章空值問題.84
5.1三值邏輯.85
5.2空值的比較.86
5.3空值的分組.88
5.4空值的排序.88
5.5函數中的空值.89
5.6空值處理函數.90
5.7空值與約束.93
5.8案例分析.95
5.9小結.97
第6章連接多個表.98
6.1連接的語法與類型.99
6.1.1使用FROM和WHERE連接兩個表99
6.1.2使用JOIN和ON連接兩個表.99
6.1.3連接查詢的類型.100
6.2內連接.100
6.2.1等值連接.100
6.2.2非等值連接.101
6.3外連接.101
6.3.1左外連接.101
6.3.2右外連接.103
6.3.3全外連接.104
6.4交叉連接.105
6.5自然連接.106
6.6自連接.107
6.7連接多個表.108
6.8案例分析.109
6.8.1案例一:生成數字序列.109
6.8.2案例二:員工考勤記錄.110
6.9小結.112
第7章嵌套子查詢.113
7.1查詢中的查詢.113
7.2標量子查詢.115
7.3行子查詢.115
7.4表子查詢.116
7.4.1WHERE條件中的子查詢116
7.4.2ALL、ANY運算符117
7.4.3FROM子句中的子查詢.119
7.5關聯子查詢.121
7.6橫向子查詢.122
7.7EXISTS運算符.123
7.8案例分析.126
7.8.1案例一:月度銷售冠軍.126
7.8.2案例二:銷售增長之星.127
7.9小結.128
第8章表的集合運算.129
8.1集合運算.129
8.2交集求同.130
8.3並集存異.132
8.4差集排他.134
8.5集合運算與排序.136
8.6運算符的優先級.137
8.7案例分析.139
8.7.1案例一:優秀員工分析.139
8.7.2案例二:用戶權限管理.142
8.8小結.144
第9章通用表表達式.145
9.1表即變量.145
9.2強大的遞歸.148
9.2.1遞歸查詢語法.149
9.2.2生成數字序列.149
9.2.3遍歷層次結構.150
9.2.4遞歸的終止.153
9.3案例分析:社交網絡關繫154
9.3.1數據結構.154
9.3.2好友關繫分析.157
9.3.3粉絲關繫分析.161
9.4小結.163
第10章窗口函數.164
10.1窗口函數定義.164
10.1.1創建數據分區.166
10.1.2分區內的排序.167
10.1.3指定窗口大小.168
10.1.4窗口函數分類.169
10.2聚合窗口函數.170
10.2.1案例分析:移動平均值.170
10.2.2案例分析:累計求和.171
10.3排名窗口函數.173
10.3.1案例分析:分類排名.174
10.3.2案例分析:累積分布.176
10.4取值窗口函數.177
10.4.1案例分析:環比、同比分析177
10.4.2案例分析:復合增長率.179
10.5小結.181
第11章數據的增刪改合182
11.1插入數據.182
11.1.1插入單行記錄.183
11.1.2插入多行記錄.185
11.1.3復制數據.186
11.2更新數據.187
11.2.1單表更新.187
11.2.2關聯更新.188
11.3刪除數據.189
11.3.1單表刪除.189
11.3.2關聯刪除.189
11.3.3快速刪除全表數據.190
11.4合並數據.191
11.4.1標準合並語句.191
11.4.2非標準合並語句.194
11.5外鍵約束與級聯操作.195
11.5.1違反外鍵約束.195
11.5.2級聯更新和刪除.196
11.6小結.198
第12章數據庫事務.199
12.1什麼是數據庫事務.199
12.2事務的ACID屬性201
12.3事務控制語句.201
12.3.1開始事務.202
12.3.2提交事務.203
12.3.3撤銷事務.204
12.3.4事務保存點.204
12.4並發事務與隔離級別.205
12.4.1並發問題.205
12.4.2隔離級別.206
12.5案例分析.207
12.6小結.210
第13章數據庫設計與實現211
13.1實體關繫圖.211
13.1.1實體.212
13.1.2屬性.212
13.1.3關繫.212
13.1.4ERD建模213
13.2規範化設計.214
13.2.1數據異常.214
13.2.2第一範式.215
13.2.3第二範式.216
13.2.4第三範式.217
13.2.5主鍵與外鍵.218
13.2.6反規範化.219
13.3數據類型.219
13.3.1數字類型.220
13.3.2字符串類型.221
13.3.3日期時間類型.222
13.3.4二進制類型.223
13.3.5選擇合適的數據類型.223
13.4管理數據庫對像.224
13.4.1常見對像.224
13.4.2管理數據庫.225
13.4.3管理模式.226
13.4.4管理數據表.227
13.5小結.231
第14章索引與性能優化232
14.1索引的原理.232
14.1.1聚集索引.234
14.1.2非聚集索引.234
14.2索引的類型.235
14.2.1專享索引與非專享索引.235
14.2.2單列索引與多列索引.235
14.2.3升序索引與降序索引.236
14.2.4函數索引.236
14.3索引的維護.236
14.3.1創建索引.236
14.3.2查看索引.237
14.3.3刪除索引.237
14.3.4注意事項.238
14.4執行計劃.238
14.4.1查詢語句的執行過程.238
14.4.2查看SQL語句的執行計劃241
14.5查詢優化技巧.244
14.5.1創建合適的索引.244
14.5.2避免索引失效.246
14.5.3隻返回需要的結果.247
14.5.4優化多表連接.248
14.5.5盡量避免使用子查詢.249
14.5.6優化集合操作.251
14.5.7不要使用OFFSET實現分頁.251
14.5.8記住SQL子句的邏輯執行順序252
14.6小結.254
第15章視圖不是表.255
15.1視圖概述.255
15.1.1什麼是視圖.255
15.1.2視圖的優缺點.256
15.2管理視圖.256
15.2.1創建視圖.256
15.2.2視圖中的ORDERBY子句.258
15.2.3修改視圖的定義.258
15.2.4刪除視圖.259
15.3可更新視圖.260
15.3.1可更新視圖的.261
15.3.2通過視圖修改數據.261
15.3.3視圖的操作.262
15.4案例分析.263
15.5小結.264
第16章存儲過程和存儲函數.265
16.1存儲過程概述.265
16.1.1什麼是存儲過程.266
16.1.2存儲過程的優缺點.266
16.2管理存儲過程.267
16.2.1創建存儲過程.267
16.2.2執行存儲過程.271
16.2.3修改存儲過程.272
16.2.4刪除存儲過程.272
16.3使用存儲函數.272
16.3.1存儲函數和存儲過程的區別273
16.3.2創建存儲函數.273
16.3.3調用存儲函數.275
16.3.4修改存儲函數.276
16.3.5刪除存儲函數.276
16.4案例分析.276
16.5小結.280
第17章一觸即發的觸發器281
17.1觸發器概述.281
17.1.1觸發器的原理.281
17.1.2觸發器的分類.282
17.2管理觸發器.283
17.2.1創建觸發器.283
17.2.2驗證觸發器.287
17.2.3查看觸發器.288
17.2.4啟用、禁用觸發器.289
17.2.5刪除觸發器.290
17.3案例分析.290
17.3.1案例一:禁止DDL操作.290
17.3.2案例二:替換視圖的DML操作.293
17.4小結.296
第18章超越關繫.297
18.1文檔存儲.297
18.1.1JSON數據類型.298
18.1.2將JSON對像表示成SQL數據303
18.1.3將SQL數據表示成JSON對像304
18.2復雜事件.305
18.2.1行模式識別.305
18.2.2分析股票曲線圖.306
18.2.3監控可疑的銀行轉賬.308
18.3多維數組.310
18.3.1數組的存儲和訪問.310
18.3.2數組處理函數.313
18.4圖形存儲.315
18.4.1圖形查詢語言與SQL/PGQ316
18.4.2社交網絡關繫分析.317
18.5小結.320
附錄ASQL常用語句速查表321
本書基於作者十多年的工作經驗和分享,全面覆蓋了從SQL基礎查詢到高級分析、從數據庫設計到查詢優化等內容,通過循序漸進的方式和簡單易懂的案例分析,透徹講解了每個SQL知識點。本書采用了近期新的SQL:2019標準,緊跟產業發展趨勢,幫助讀者解鎖最前沿的SQL特性,同時提供了5種主流數據庫的實現和差異。最後,本書還介紹了近期新SQL標準對文檔存儲(JSON)、復雜事件處理(MATCH_RECOGNIZE)、多維數組(SQL/MDA)以及圖形存儲(SQL/PGQ)的支持。
董旭陽 著
"董旭陽數據庫架構師、CSDN博客專家,畢業於北京航空航天大學,擁有十多年數據庫管理與開發經驗,專注於數據庫領域的知識分享,榮獲Oracle OCP和Redhat RHCE證書。目前在一家全球性的金融公司從事數據庫架構設計工作。個人博客:https://tonydong.blog.csdn.net/"