目 錄
前 言 III
關於本書 IV
讀者對象 IV
學習本書前的預備知識 IV
本書涉及的關係數據庫 V
本書的學習安排 V
隨書光盤簡介 VI
第1章 數據庫和SQL 1
1-1 數據庫是什麼 3
我們身邊的數據庫 3
為什麼DBMS那麼重要 4
DBMS種類 6
1-2 數據庫的結構 8
RDBMS的常見係統結構 8
錶的結構 10
1-3 SQL概要 13
標準SQL 13
SQL語句及其種類 14
SQL的基本書寫規則 15
1-4 錶的創建 18
錶的內容的創建 18
數據庫的創建(CREATE DATABASE語句) 19
錶的創建(CREATE TABLE語句) 19
命名規則 21
數據類型的指定 22
約束的設置 24
1-5 錶的刪除和更新 25
錶的刪除(DROP TABLE語句) 25
錶定義的更新(ALTER TABLE語句) 26
嚮Shohin錶中插入數據 27
練習題 30
第2章 查詢基礎 31
2-1 SELECT語句基礎 33
列的查詢 33
查詢齣錶中所有的列 35
為列設定彆名 36
常數的查詢 38
從結果中刪除重復行 38
根據WHERE語句來選擇記錄 41
注釋的書寫方法 43
2-2 算術運算符和比較運算符 45
算術運算符 45
需要注意NULL 46
比較運算符 48
對字符串使用不等號時的注意事項 50
不能對NULL使用比較運算符 53
2-3 邏輯運算符 56
NOT運算符 56
AND運算符和OR運算符 58
通過括號進行強化 60
邏輯運算符和真值 62
含有NULL時的真值 64
練習題 66
第3章 聚閤與排序 67
3-1 對錶進行聚閤查詢 69
聚閤函數 69
計算錶中數據的行數 70
計算NULL以外數據的行數 71
計算閤計值 72
計算平均值 74
計算最大值和最小值 75
使用聚閤函數刪除重復值(關鍵字DISTINCT) 77
3-2 對錶進行分組 79
GROUP BY子句 79
聚閤鍵中包含NULL的情況 81
使用WHERE子句時GROUP BY的執行結果 82
與聚閤函數和GROUP BY子句有關的常見錯誤 84
3-3 為聚閤結果指定條件 89
HAVING子句 89
HAVING子句的構成要素 92
相對於HAVING子句,更適閤寫在WHERE子句中的條件 93
3-4 對查詢結果進行排序 96
ORDER BY子句 96
指定升序或降序 98
指定多個排序鍵 99
NULL的順序 99
在排序鍵中使用顯示用彆名 100
ORDER BY子句中可以使用的列 102
不要使用列編號 102
練習題 104
第4章 數據更新 105
4-1 數據的插入(INSERT語句的使用方法) 107
什麼是INSERT 107
INSERT語句的基本語法 108
列清單的省略 111
插入NULL 111
插入默認值 112
從其他錶中復製數據 114
4-2 數據的刪除(DELETE語句的使用方法) 117
DROP TABLE語句和DELETE語句 117
DELETE語句的基本語法 117
指定刪除對象的DELETE語句(搜索型DELETE) 118
4-3 數據的更新(UPDATE語句的使用方法) 121
UPDATE語句的基本語法 121
指定條件的UPDATE語句(搜索型UPDATE) 122
使用NULL進行更新 123
多列更新 124
4-4 事務 126
什麼是事務 126
創建事務 127
ACID特性 132
練習題 133
第5章 復雜查詢 135
5-1 視圖 137
視圖和錶 137
創建視圖的方法 139
視圖的限製①——定義視圖時不能使用ORDER BY子句 142
視圖的限製②——對視圖進行更新 143
刪除視圖 147
5-2 子查詢 148
子查詢和視圖 148
子查詢的名稱 151
標量子查詢 151
標量子查詢的書寫位置 154
使用標量子查詢時的注意事項 155
5-3 關聯子查詢 156
普通的子查詢和關聯子查詢的區彆 156
關聯子查詢也是用來對集閤進行切分的 159
結閤條件一定要寫在子查詢中 160
練習題 161
第6章 函數、謂詞、CASE錶達式 163
6-1 各種各樣的函數 165
函數的種類 165
算術函數 166
字符串函數 170
日期函數 178
轉換函數 182
6-2 謂詞 186
什麼是謂詞 186
LIKE謂詞——字符串的部分一緻查詢 186
BETWEENT謂詞——範圍查詢 190
IS NULL、IS NOT NULL——判斷是否為NULL 191
IN謂詞——OR的簡便用法 192
使用子查詢作為IN謂詞的參數 193
EXIST謂詞 198
6-3 CASE錶達式 202
什麼是CASE錶達式 202
CASE錶達式的語法 202
CASE錶達式的使用方法 203
練習題 209
第7章 集閤運算 211
7-1 錶的加減法 213
什麼是集閤運算 213
錶的加法——UNION 213
集閤運算的注意事項 216
包含重復行的集閤運算——ALL選項 217
選取錶中公共部分——INTERSECT 218
記錄的減法——EXCEPT 219
7-2 聯結(以列為單位對錶進行聯結) 222
什麼是聯結 222
內聯結——INNER JOIN 223
外聯結——OUTER JOIN 228
3張以上錶的聯結 231
交叉聯結——CROSS JOIN 234
特定的聯結語句和過時的語法 237
練習題 242
第8章 SQL 高級處理 243
8-1 窗口函數 245
什麼是窗口函數 245
窗口函數的語法 246
語法的基本使用方法——使用RANK函數 246
無須指定PARTITION BY 249
專用窗口函數的種類 250
窗口函數的適用範圍 251
作為窗口函數使用的聚閤函數 252
計算移動平均 254
兩個ORDER BY 257
8-2 GROUPING運算符 259
同時計算齣閤計值 259
ROLLUP——同時計算齣閤計值和小計值 260
GROUPING函數——讓NULL更加容易分辨 265
CUBE——用數據來搭積木 267
GROUPING SETS——取得期望的積木 269
練習題 270
附錄A 安裝PostgreSQL 271
附錄B 在PostgreSQL中執行SQL的方法 278
附錄C 練習題答案 284
· · · · · · (
收起)