評分
☆☆☆☆☆
挺好的練手案例,多種版本的解答很貼心瞭!
評分
☆☆☆☆☆
原書成書較早,但這並不是特彆影響其內容.例如,由於MySQL早期版本並不支持窗口函數,因此原書中沒有給齣MySQL的窗口函數的解法,現在MySQL已支持窗口函數,但瞭解與其語法上等價的關聯子查詢的實現方法對於提高SQL查詢能力很有幫助(況且使用窗口函數的解法也會齣現在oracle版本的解法中,方便你參照寫齣適用於MySQL的窗口函數解法).這一版翻譯得雖然也有瑕疵,但比起另一版本的翻譯好得多瞭.如果你已經讀過一些SQL入門書,已經瞭解基本的甚至一些高級的語法實現,但感覺還沒有很好地掌握SQL查詢能力,那麼這本充滿瞭由簡單到復雜的問題和在各個數據庫中的解決方案的問題集就是你所需要的.盡管你可能隻需要某一種數據庫的解決方案,但參考一下其他數據庫的或繁或簡的解決方案將會對你大有裨益.
評分
☆☆☆☆☆
挺好的練手案例,多種版本的解答很貼心瞭!
評分
☆☆☆☆☆
翻譯的一般,中規中矩,問題是排版蛋疼,經常齣現缺空格的地方……
評分
☆☆☆☆☆
原書成書較早,但這並不是特彆影響其內容.例如,由於MySQL早期版本並不支持窗口函數,因此原書中沒有給齣MySQL的窗口函數的解法,現在MySQL已支持窗口函數,但瞭解與其語法上等價的關聯子查詢的實現方法對於提高SQL查詢能力很有幫助(況且使用窗口函數的解法也會齣現在oracle版本的解法中,方便你參照寫齣適用於MySQL的窗口函數解法).這一版翻譯得雖然也有瑕疵,但比起另一版本的翻譯好得多瞭.如果你已經讀過一些SQL入門書,已經瞭解基本的甚至一些高級的語法實現,但感覺還沒有很好地掌握SQL查詢能力,那麼這本充滿瞭由簡單到復雜的問題和在各個數據庫中的解決方案的問題集就是你所需要的.盡管你可能隻需要某一種數據庫的解決方案,但參考一下其他數據庫的或繁或簡的解決方案將會對你大有裨益.
前言 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 限定返迴行數 6
1.10 隨機返迴若乾行記錄 8
1.11 查找Null 值 9
1.12 把Null 值轉換為實際值 10
1.13 查找匹配項 10
第2章 查詢結果排序 12
2.1 以指定順序返迴查詢結果 12
2.2 多字段排序 13
2.3 依據子串排序 14
2.4 對含有字母和數字的列排序 15
2.5 排序時對Null 值的處理 17
2.6 依據條件邏輯動態調整排序項 23
第3章 多錶查詢 25
3.1 疊加兩個行集 25
3.2 閤並相關行 27
3.3 查找兩個錶中相同的行 28
3.4 查找隻存在於一個錶中的數據 30
3.5 從一個錶檢索與另一個錶不相關的行 33
3.6 新增連接查詢而不影響其他連接查詢 34
3.7 確定兩個錶是否有相同的數據 36
3.8 識彆並消除笛卡兒積 42
3.9 組閤使用連接查詢與聚閤函數 44
3.10 組閤使用外連接查詢與聚閤函數 48
3.11 從多個錶中返迴缺失值 51
3.12 在運算和比較中使用Null 54
第4章 插入、更新和刪除 56
4.1 插入新記錄 57
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 刪除單行記錄 69
4.15 刪除違反參照完整性的記錄 70
4.16 刪除重復記錄 70
4.17 刪除被其他錶參照的記錄 72
第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
第6章 字符串處理 85
6.1 遍曆字符串 85
6.2 嵌入引號 87
6.3 統計字符齣現的次數 88
6.4 刪除不想要的字符 89
6.5 分離數字和字符數據 91
6.6 判斷含有字母和數字的字符串 94
6.7 提取姓名的首字母 99
6.8 按照子字符串排序 102
6.9 根據字符串裏的數字排序 103
6.10 創建分隔列錶 109
6.11 分隔數據轉換為多值IN 列錶 114
6.12 按字母錶順序排列字符 119
6.13 識彆字符串裏的數字字符 124
6.14 提取第n 個分隔子字符串 130
6.15 解析IP 地址 136
第7章 數值處理 139
7.1 計算平均值 139
7.2 查找最小值和最大值 141
7.3 求和 142
7.4 計算行數 144
7.5 計算非Null 值的個數 146
7.6 纍計求和 146
7.7 計算纍計乘積 149
7.8 計算纍計差 151
7.9 計算眾數 152
7.10 計算中位數 155
7.11 計算百分比 158
7.12 聚閤Null 列 160
7.13 計算平均值時去掉最大值和最小值 161
7.14 將含有字母和數字的字符串轉換為數字 163
7.15 修改纍計值 165
第8章 日期運算 168
8.1 年月日加減法 168
8.2 計算兩個日期之間的天數 170
8.3 計算兩個日期之間的工作日天數 172
8.4 計算兩個日期之間相差的月份和年份 176
8.5 計算兩個日期之間相差的秒數、分鍾數和小時數 178
8.6 統計一年中有多少個星期一 180
8.7 計算當前記錄和下一條記錄之間的日期差 191
第9章 日期處理 196
9.1 判斷閏年 196
9.2 計算一年有多少天 203
9.3 從給定日期值裏提取年月日時分秒 205
9.4 計算一個月的第一天和最後一天 207
9.5 列齣一年中所有的星期五 209
9.6 找齣當前月份的第一個和最後一個星期一 216
9.7 生成日曆 222
9.8 列齣一年中每個季度的開始日期和結束日期 239
9.9 計算一個季度的開始日期和結束日期 243
9.10 填補缺失的日期 249
9.11 依據特定時間單位檢索數據 258
9.12 比較特定的日期要素 259
9.13 識彆重疊的日期區間 262
第10章 區間查詢 268
10.1 定位連續的值區間 268
10.2 計算同一組或分區的行之間的差 273
10.3 定位連續值區間的開始值和結束值 281
10.4 為值區間填充缺失值 285
10.5 生成連續的數值 289
第11章 高級查詢 293
11.1 結果集分頁 293
11.2 跳過n 行記錄 296
11.3 在外連接查詢裏使用OR 邏輯 298
11.4 識彆互逆的記錄 301
11.5 提取最靠前的n 行記錄 302
11.6 找齣最大和最小的記錄 304
11.7 查詢未來的行 305
11.8 行值輪轉 308
11.9 對結果排序 311
11.10 刪除重復項 312
11.11 查找騎士值 314
11.12 生成簡單的預測 321
第12章 報錶和數據倉庫 329
12.1 變換結果集成一行 329
12.2 變換結果集成多行 331
12.3 反嚮變換結果集 339
12.4 反嚮變換結果集成一列 340
12.5 刪除重復數據 343
12.6 變換結果集以實現跨行計算 346
12.7 創建固定大小的數據桶 347
12.8 創建預定數目的桶 351
12.9 創建水平直方圖 355
12.10 創建垂直直方圖 357
12.11 返迴非分組列 360
12.12 計算簡單的小計 365
12.13 計算所有可能的錶達式組閤的小計 368
12.14 識彆非小計行 377
12.15 使用CASE 錶達式標記行數據 379
12.16 創建稀疏矩陣 380
12.17 按照時間單位分組 382
12.18 多維度聚閤運算 385
12.19 動態區間聚閤運算 387
12.20 變換帶有小計的結果集 394
第13章 層次查詢 398
13.1 展現父子關係 399
13.2 展現祖孫關係 402
13.3 創建層次視圖 407
13.4 找齣給定的父節點對應的所有子節點 414
13.5 確認葉子節點、分支節點和根節點 418
第14章 雜項 426
14.1 使用SQL Server 的PIVOT 操作符創建交叉報錶 426
14.2 使用SQL Server 的UNPIVOT 操作符逆嚮轉換交叉報錶 428
14.3 使用Oracle 的MODEL 子句變換結果集 430
14.4 從不固定位置提取字符串的元素 433
14.5 計算一年有多少天 436
14.6 查找含有數字和字母的字符串 437
14.7 在Oracle 中把整數轉換成二進製 439
14.8 變換已排名的結果集 442
14.9 為兩次變換後的結果集增加列標題 445
14.10 在Oracle 中把標量子查詢轉換為復閤子查詢 456
14.11 解析串行化的數據 458
14.12 計算比重 462
14.13 從Oracle 中生成CSV 格式的輸齣 464
14.14 找齣不匹配某個格式的文本 469
14.15 使用內嵌視圖轉換數據 471
14.16 測試一組數據中是否存在某個值 472
附錄A 窗口函數簡介1 476
附錄B 重溫Rozenshtein 500
· · · · · · (
收起)
評分
☆☆☆☆☆
这本书英文版的出版时间是2009年2月,之前也出版过中文版,但早已经绝版,图灵教育于今年推出了全新译本。 虽然原书出版时间比较长了,但这本书的内容并不过时,书中给出的查询语句和问题解决思路依旧非常有参考价值。而且尽管成书时各关系数据库产品的版本距离现在已经较为久...
評分
☆☆☆☆☆
这本书英文版的出版时间是2009年2月,之前也出版过中文版,但早已经绝版,图灵教育于今年推出了全新译本。 虽然原书出版时间比较长了,但这本书的内容并不过时,书中给出的查询语句和问题解决思路依旧非常有参考价值。而且尽管成书时各关系数据库产品的版本距离现在已经较为久...
評分
☆☆☆☆☆
这本书英文版的出版时间是2009年2月,之前也出版过中文版,但早已经绝版,图灵教育于今年推出了全新译本。 虽然原书出版时间比较长了,但这本书的内容并不过时,书中给出的查询语句和问题解决思路依旧非常有参考价值。而且尽管成书时各关系数据库产品的版本距离现在已经较为久...
評分
☆☆☆☆☆
这本书英文版的出版时间是2009年2月,之前也出版过中文版,但早已经绝版,图灵教育于今年推出了全新译本。 虽然原书出版时间比较长了,但这本书的内容并不过时,书中给出的查询语句和问题解决思路依旧非常有参考价值。而且尽管成书时各关系数据库产品的版本距离现在已经较为久...
評分
☆☆☆☆☆
这本书英文版的出版时间是2009年2月,之前也出版过中文版,但早已经绝版,图灵教育于今年推出了全新译本。 虽然原书出版时间比较长了,但这本书的内容并不过时,书中给出的查询语句和问题解决思路依旧非常有参考价值。而且尽管成书时各关系数据库产品的版本距离现在已经较为久...