SQL 經典實例
內容描述
本書詳細介紹了各種數據庫的SQL查詢技術和一些基礎的SQL查詢語句,並且通過實例操作的方式講解瞭如何插入、更新和刪除數據等相關知識。另外,本書還介紹瞭如何使用SQL語句進行日期處理,以及一些其他的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
作者介紹
作者:[美]安東尼·莫利納羅(Anthony Molinaro)譯者:劉春輝
安東尼·莫利納羅(Anthony Molinaro),專精SQL技術,擅長解決棘手的SQL問題,對關係理論有深入研究。