SQL經典實例第2版

SQL經典實例第2版

《SQL經典實例第2版》是2021年人民郵電出版社出版的圖書,作者是[美] 安東尼·莫利納羅(Anthony Molinaro)、[澳] 羅伯特·德·格拉夫(Robert,de,Graaf) 。

基本介紹

  • 中文名:SQL經典實例第2版
  • 作者:[美]安東尼·莫利納羅、[澳]羅伯特·德·格拉夫
  • 譯者:袁國忠
  • 出版時間:2021年12月1日
  • 出版社人民郵電出版社
  • 頁數:449 頁
  • ISBN:9787115577962
  • 類別:資料庫圖書
  • 開本:16 開
  • 裝幀:平裝
內容簡介,圖書目錄,作者簡介,

內容簡介

本書詳細介紹了Oracle、MySQL、PostgreSQL、SQL Server、DB2等各種關係資料庫的SQL查詢技巧和一些基礎的SQL查詢語句,並且通過短小精悍的實例,不僅講解了如何插入、更新和刪除數據,還介紹了如何檢索記錄、為查詢結果排序、同時操作多張資料庫表、查詢元數據、處理涉及字元串和數值的操作、根據時間數據和日期數據進行運算、執行層次查詢和區間查詢等。隨著多種SQL實現大量採用視窗函式,本書第2版針對相關實例做了最佳化,還新增了為數據科學家和算法工程師量身定製的實例。

圖書目錄

前言xi
第 1 章 檢索記錄 1
1.1 檢索表中所有的行和列 1
1.2 從表中檢索部分行 2
1.3 查找滿足多個條件的行 2
1.4 從表中檢索部分列 3
1.5 提供有意義的列名 3
1.6 在WHERE子句中使用別名來引用列 4
1.7 拼接列值 5
1.8 在SELECT語句中使用條件邏輯 6
1.9 限制返回的行數 7
1.10 從表中隨機返回n行數據 8
1.11 查找NULL值 9
1.12 將NULL轉換為實際值 10
1.13 模式查找 10
1.14 小結 11
第 2 章 查詢結果排序 12
2.1 按指定順序返回查詢結果 12
2.2 按多欄位排序 13
2.3 按子串排序 14
2.4 對同時包含字母和數字的數據進行排序 15
2.5 排序時處理NULL值 17
2.6 根據依賴於數據的鍵進行排序 23
2.7 小結 24
第 3 章 使用多張表 25
3.1 合併多個行集 25
3.2 合併相關的行 27
3.3 查找兩張表中相同的行 28
3.4 從一張表中檢索沒有出現在另一張表中的值 30
3.5 從一張表中檢索在另一張表中沒有對應行的行 34
3.6 在查詢中添加連線並確保不影響其他連線 36
3.7 判斷兩張表包含的數據是否相同 38
3.8 識別並避免笛卡兒積 44
3.9 同時使用連線和聚合 45
3.10 同時使用外連線和聚合 49
3.11 返回多張表中不匹配的行 51
3.12 在運算和比較中使用NULL 55
3.13 小結 55
第 4 章 插入、更新和刪除 56
4.1 插入新記錄 56
4.2 插入默認值 57
4.3 用NULL覆蓋默認值 58
4.4 將一張表中的行複製到另一張表中 59
4.5 複製表定義 59
4.6 同時插入多張表 60
4.7 禁止在特定列中插入值 62
4.8 修改表中的記錄 63
4.9 僅當存在匹配行時才更新 64
4.10 使用來自另一張表中的值進行更新 64
4.11 合併記錄 67
4.12 刪除表中的所有記錄 69
4.13 刪除特定記錄 69
4.14 刪除單條記錄 70
4.15 刪除違反引用完整性的記錄 70
4.16 刪除重複記錄 71
4.17 刪除在另一張表中引用了的記錄 72
4.18 小結 73
第 5 章 元數據查詢 74
5.1 列出模式中的所有表 74
5.2 列出表中的列 75
5.3 列出表的索引列 76
5.4 列出表的約束 77
5.5 列出沒有相應索引的外鍵 78
5.6 使用SQL生成SQL 81
5.7 描述Oracle資料庫中的數據字典視圖 83
5.8 小結 84
第 6 章 處理字元串 85
6.1 走查字元串 85
6.2 在字元串字面量中嵌入引號 87
6.3 計算字元串中特定字元出現的次數 88
6.4 將不想要的字元從字元串中刪除 89
6.5 將數字數據和字元數據分開 90
6.6 判斷字元串是否只包含字母和數字 94
6.7 提取姓名中的首字母 98
6.8 根據部分字元串排序 101
6.9 根據字元串中的數字排序 103
6.10 根據表中的行創建分隔列表 108
6.11 將分隔數據轉換為多值IN列表 111
6.12 按字母順序排列字元串中的字元 116
6.13 識別可視為數字的字元串 120
6.14 提取第n個子串 125
6.15 拆分IP位址 131
6.16 根據發音比較字元串 133
6.17 查找與模式不匹配的文本 134
6.18 小結 137
第 7 章 處理數字 138
7.1 計算平均值 138
7.2 找出列值和小列值 140
7.3 計算列值總和 142
7.4 計算表中的行數 143
7.5 計算非NULL列值數 145
7.6 生成移動總計 145
7.7 生成移動總積 147
7.8 平滑值序列 148
7.9 計算眾數 149
7.10 計算中值 151
7.11 計算總計占比 153
7.12 聚合值可為NULL的列 155
7.13 計算剔除值和值後的平均值 156
7.14 將由字母和數字組成的字元串轉換為數字 158
7.15 修改移動總計中的值 60
7.16 使用中位差找出異常值 161
7.17 使用本福特法則查找反常數據 164
7.18 小結 166
第 8 章 日期算術運算 167
8.1 加上或減去若干天、若干月或若干年 167
8.2 確定兩個日期相差多少天 169
8.3 確定兩個日期之間有多少個工作日 171
8.4 確定兩個日期相隔多少個月或多少年 175
8.5 確定兩個日期相隔多少秒、多少分鐘或多少小時 178
8.6 計算一年中有多少個工作日 179
8.7 確定當前記錄和下一條記錄存儲的日期相隔多少天 190
8.8 小結 194
第 9 章 操作日期 195
9.1 判斷特定的年份是否是閏年 195
9.2 確定特定年份有多少天 201
9.3 提取日期的各個組成部分 203
9.4 找出一個月的第 一天和後一天 205
9.5 找出一年中所有的星期n 207
9.6 找出一個月中第 一個和後一個星期n 213
9.7 創建日曆 219
9.8 列出一年中各個季度的第 一天和後一天 230
9.9 確定給定季度的第 一天和後一天 234
9.10 補全缺失的日期 240
9.11 根據日期的特定部分進行查找 247
9.12 根據日期的特定部分對記錄進行比較 248
9.13 找出重疊的日期範圍 251
9.14 小結 256
第 10 章 涉及區間的查詢 257
10.1 找出一系列連續的值 257
10.2 找出同一個分組或分區中相鄰行的差 260
10.3 找出連續值構成的區間的起點和終點 265
10.4 填補值區間空隙 268
10.5 生成連續的數字值 271
10.6 小結 274
第 11 章 高級查找 275
11.1 在結果集中翻頁 275
11.2 在表中跳過n行數據 277
11.3 在外連線中使用OR邏輯 279
11.4 確定哪些行是互逆的 280
11.5 返回前n條記錄 282
11.6 找出值和的記錄 283
11.7 查看後面的行 284
11.8 平移行值 286
11.9 結果排名 288
11.10 消除重複行 289
11.11 查找馬值 291
11.12 生成簡單預測 296
11.13 小結 303
第 12 章 報表製作和整形 304
12.1 將結果集轉置為一行 304
12.2 將結果集轉置為多行 306
12.3 對結果集進行逆轉置 311
12.4 將結果集逆轉置為一列 312
12.5 消除結果集中的重複值 315
12.6 轉置結果集以簡化涉及多行的計算 317
12.7 創建尺寸固定的數據桶 319
12.8 創建預定數量的桶 321
12.9 創建水平直方圖 322
12.10 創建垂直直方圖 323
12.11 返回未被用作分組依據的列 325
12.12 計算簡單的小計 327
12.13 計算各種可能的小計 331
12.14 標出非小計行 340
12.15 使用CASE表達式來標識行 341
12.16 創建稀疏矩陣 343
12.17 按時間分組 344
12.18 同時對不同的分組/分區進行聚合 348
12.19 聚合移動值區間 349
12.20 轉置包含小計的結果集 356
12.21 小結 360
第 13 章 分層查詢 361
13.1 呈現父子關係 362
13.2 呈現子?C父?C祖父關係 365
13.3 創建基於表的分層視圖 369
13.4 找出給定父行的所有子行 373
13.5 確定葉子節點、分支節點和根節點 374
13.6 小結 381
第 14 章 雜項 382
14.1 使用SQL Server運算符PIVOT創建交叉報表 382
14.2 使用SQL Server運算符UNPIVOT逆轉置交叉報表 384
14.3 使用Oracle子句MODEL轉置結果集 386
14.4 從不固定的位置提取子串 389
14.5 確定特定年份有多少天(另一種Oracle解決方案) 391
14.6 找出同時包含字母和數字的字元串 393
14.7 在Oracle中將整數轉換為其二進制表示 395
14.8 對經過排名的結果集進行轉置 397
14.9 給經過兩次轉置的結果集添加列標題 401
14.10 在Oracle中將標量子查詢轉換為複合子查詢 412
14.11 將序列化數據轉換為行 414
14.12 計算占總計的百分比 418
14.13 確定編組是否包含指定的值 419
14.14 小結 422
附錄A 溫習視窗函式 423
附錄B 通用表表達式 446

作者簡介

安東尼·莫利納羅(Anthony Molinaro),美國強生公司數據科學家,專精SQL技術,擅長解決棘手的SQL問題,對關係理論有深入研究。羅伯特·德·格拉夫(Robert de Graaf),RightShip公司數據科學家,負責為公司設計和開發用於預測性分析的算法,另著有Managing Your Data Science Projects。【譯者介紹】袁國忠,自由譯者,20多年專職翻譯經驗,主譯圖書,偶譯新聞稿、軟文;出版譯著40餘部,其中包括《Python編程從入門到實踐》《C++ Prime Plus中文版》《Python基礎教程(第3版)》《算法圖解》《面向模式的軟體架構:模式系統》《風投的選擇:誰是下一個十億美元級公司》等,總計700餘萬字;專事翻譯前,做過兩年雜誌和圖書編輯,從事過三年化工產品開發和分析工作。

相關詞條

熱門詞條

聯絡我們