這是一本針對 SQL 初學(xué)者的圖書。本書著重講解 SQL 的數(shù)據(jù)檢索能力,覆蓋了 SQL 語言的所有核心概念,并且配有豐富的實(shí)踐示例。本書以直觀且富有邏輯性的順序來組織主題,以SQL關(guān)鍵字為線索層層遞進(jìn)。書中介紹了3種廣泛使用的數(shù)據(jù)庫,它們是: Microsoft SQL Server、MySQL 和 Oracle。
本書適合SQL語言的初學(xué)者和初級(jí)的數(shù)據(jù)庫管理員學(xué)習(xí)和參考,也可以作為高等院校相關(guān)專業(yè)的教學(xué)參考書。
1.專注于整體概念,并提供清晰的解釋和例子以說明 SQL 語句能完成的任務(wù),非常適合SQL 初學(xué)者。
2.閱讀本書時(shí)無須下載軟件或使用電腦。我們的目標(biāo)是提供只需閱讀本書便能理解的 SQL 示例,易學(xué)易用。
3.本書以直觀且富有邏輯性的順序來組織主題,以 SQL 關(guān)鍵詞為線索層層遞進(jìn),讀者可借助已學(xué)知識(shí)理解新的詞匯和概念。
4.本書涵蓋了三種廣泛使用的數(shù)據(jù)庫,它們分別是Microsoft SQLServer 2019、MySQL 8.0 和 Oracle 18c。"數(shù)據(jù)庫差異"版塊清晰地展示了這些數(shù)據(jù)庫的所有不同之處。本書還給出了如何獲取和安裝這些數(shù)據(jù)庫免費(fèi)版本的說明。
拉里·羅克夫(Larry Rockoff),多年來一直從事與 SQL 和商業(yè)智能開發(fā)相關(guān)的工作。他的主要興趣是使用報(bào)表工具探索和分析復(fù)雜數(shù)據(jù)庫中的數(shù)據(jù)。他擁有芝加哥大學(xué)的 MBA 學(xué)位和伊利諾伊大學(xué)的藝術(shù)學(xué)士學(xué)位。除 SQL 外,他還出版了有關(guān) Microsoft Excel 和 Access 的圖書。他還維護(hù)著一個(gè)網(wǎng)站 larryrockoff.com,其主要內(nèi)容是技術(shù)領(lǐng)域的書評(píng)、數(shù)據(jù)分析和可視化。
第 1 章 關(guān)系型數(shù)據(jù)庫和 SQL 1
1.1 SQL 是什么 2
1.2 Microsoft SQL Server、MySQL 和 Oracle 3
1.3 關(guān)系型數(shù)據(jù)庫 4
1.4 主鍵和外鍵 5
1.5 數(shù)據(jù)類型 6
1.6 NULL 值 7
1.7 數(shù)據(jù)庫簡史 7
1.8 小結(jié) 8
第 2 章 基本數(shù)據(jù)檢索 9
2.1 簡單的 SELECT 語句 9
2.2 語法說明 10
2.3 注釋 11
2.4 指定列 12
2.5 帶有空格的列名 13
2.6 完整的 SELECT 語句一覽 14
2.7 小結(jié) 15
第 3 章 計(jì)算字段和別名 16
3.1 字面量 16
3.2 算術(shù)運(yùn)算 18
3.3 連接字段 19
3.4 列的別名 20
3.5 表的別名 22
3.6 小結(jié) 22
第 4 章 使用函數(shù) 24
4.1 函數(shù)是什么 24
4.2 字符函數(shù) 25
4.3 復(fù)合函數(shù) 28
4.4 日期/時(shí)間函數(shù) 29
4.5 數(shù)值函數(shù) 32
4.6 其他函數(shù) 33
4.7 小結(jié) 37
第 5 章 排序數(shù)據(jù) 39
5.1 升序排序 39
5.2 降序排序 41
5.3 根據(jù)多列排序 41
5.4 根據(jù)計(jì)算字段排序 42
5.5 排序序列 43
5.6 小結(jié) 45
第 6 章 查詢條件 46
6.1 應(yīng)用查詢條件 46
6.2 WHERE 子句運(yùn)算符 47
6.3 限制行 48
6.4 使用排序限制行數(shù) 50
6.5 模式匹配 51
6.6 根據(jù)聲音匹配 56
6.7 小結(jié) 58
第 7 章 布爾邏輯 59
7.1 復(fù)雜的邏輯條件 59
7.2 AND 運(yùn)算符 60
7.3 OR 運(yùn)算符 60
7.4 使用圓括號(hào) 61
7.5 使用多組圓括號(hào) 62
7.6 NOT 運(yùn)算符 63
7.7 BETWEEN 運(yùn)算符 66
7.8 IN 運(yùn)算符 67
7.9 布爾邏輯和 NULL 值 68
7.10 小結(jié) 70
第 8 章 條件邏輯 71
8.1 CASE 表達(dá)式 71
8.2 CASE 表達(dá)式的簡單格式 72
8.3 CASE 表達(dá)式的搜索格式 74
8.4 ORDER BY 子句中的條件邏輯 75
8.5 WHERE 子句中的條件邏輯 76
8.6 小結(jié) 77
第 9 章 匯總數(shù)據(jù) 79
9.1 消除重復(fù) 79
9.2 聚合函數(shù) 80
9.3 COUNT 函數(shù) 82
9.4 將數(shù)據(jù)分組 83
9.5 根據(jù)多個(gè)列分組和排序 86
9.6 基于聚合的查詢條件 87
9.7 GROUP BY 子句中的條件邏輯 89
9.8 HAVING 子句中的條件邏輯 90
9.9 排名函數(shù) 92
9.10 分區(qū) 95
9.11 分析函數(shù) 98
9.12 小結(jié) 101
第 10 章 分類匯總和交叉表 102
10.1 使用 ROLLUP 添加分類匯總 102
10.2 使用關(guān)鍵字 CUBE 添加分類匯總 107
10.3 創(chuàng)建交叉表布局 110
10.4 小結(jié) 115
第 11 章 內(nèi)連接 116
11.1 連接兩張表 117
11.2 內(nèi)連接是什么 118
11.3 內(nèi)連接中表的順序 119
11.4 隱式內(nèi)連接 120
11.5 再談表的別名 121
11.6 小結(jié) 122
第 12 章 外連接 123
12.1 外連接是什么 123
12.2 左連接 125
12.3 判斷 NULL 值 126
12.4 右連接 127
12.5 外連接中表的順序 128
12.6 全連接 129
12.7 交叉連接 131
12.8 小結(jié) 133
第 13 章 自連接和視圖 134
13.1 自連接是什么 134
13.2 創(chuàng)建視圖 136
13.3 引用視圖 138
13.4 視圖的優(yōu)點(diǎn) 139
13.5 修改和刪除視圖 140
13.6 小結(jié) 141
第 14 章 子查詢 142
14.1 子查詢的類型 142
14.2 使用子查詢作為數(shù)據(jù)源 143
14.3 在查詢條件中使用子查詢 146
14.4 關(guān)聯(lián)子查詢 147
14.5 EXISTS 運(yùn)算符 149
14.6 以子查詢作為計(jì)算列 150
14.7 公用表表達(dá)式 151
14.8 小結(jié) 153
第 15 章 集合邏輯 154
15.1 UNION 運(yùn)算符 154
15.2 UNION 和 UNION ALL 156
15.3 查詢交集 158
15.4 小結(jié) 159
第 16 章 存儲(chǔ)過程和參數(shù) 160
16.1 創(chuàng)建存儲(chǔ)過程 160
16.2 存儲(chǔ)過程中的參數(shù) 162
16.3 執(zhí)行存儲(chǔ)過程 163
16.4 修改和刪除存儲(chǔ)過程 164
16.5 再談函數(shù) 165
16.6 小結(jié) 166
第 17 章 修改數(shù)據(jù) 167
17.1 修改策略 167
17.2 插入數(shù)據(jù) 168
17.3 刪除數(shù)據(jù) 171
17.4 更新數(shù)據(jù) 172
17.5 相關(guān)子查詢更新 173
17.6 小結(jié) 175
第 18 章 維護(hù)表 176
18.1 數(shù)據(jù)定義語言 176
18.2 表的屬性 177
18.3 表的列 177
18.4 主鍵和索引 178
18.5 外鍵 179
18.6 創(chuàng)建表 180
18.7 創(chuàng)建索引 182
18.8 小結(jié) 183
第 19 章 數(shù)據(jù)庫設(shè)計(jì)原則 184
19.1 規(guī)范化的目標(biāo) 184
19.2 如何規(guī)范化數(shù)據(jù) 186
19.3 數(shù)據(jù)庫設(shè)計(jì)的藝術(shù) 189
19.4 規(guī)范化的替代方法 189
19.5 小結(jié) 190
第 20 章 使用 Excel 的策略 192
20.1 再談交叉表布局 192
20.2 外部數(shù)據(jù)和 Power Query 193
20.3 Excel 透視表 196
20.4 Excel 透視圖 200
20.5 Excel 標(biāo)準(zhǔn)圖表 204
20.6 小結(jié) 206
附錄 A 初識(shí) Microsoft SQL Server 207
附錄 B 初識(shí) MySQL 209
附錄 C 初識(shí) Oracle 211