內容簡介
《鋒利的SQL(第2版)》從基礎、開發、性能調整和實戰4方麵介紹瞭SQL技術及其應用,包括數據庫與架構、錶管理、索引管理、基本查詢、子查詢、聯接和APPLY運算符、操作結果集、窗口計算和錶鏇轉、數據修改、視圖、遊標、存儲過程、觸發器、用戶自定義函數、事務處理、並發訪問控製、查詢的優化與執行等內容。
《鋒利的SQL(第2版)》既覆蓋瞭改善效率和性能的普通SQL技術,也深入探討瞭SQL新技術,更包含一些實用的查詢解決方案,希望本書能夠成為引領讀者進入SQL查詢殿堂的捷徑。此外,本書在介紹各種查詢語法時,更注重對查詢邏輯思維方式的引導和介紹,幫助讀者舉一反三,提升動手解決實際問題的能力。
作者簡介
張洪舉, 微軟公司最有價值專傢(MVP),微軟TechNet技術資源專欄作傢。擁有近20年的數據庫産品應用開發經曆,尤其是在多層架構的麵嚮對象係統分析設計、數據庫分析設計、商業智能係統分析設計等方麵積纍瞭豐富的項目經驗。著有《SQL Server 2005:入門、進階與應用實例》等原創著作,並翻譯瞭《SQL Server 2012 T-SQL基礎教程循序漸進》等作品。
王曉文, 麯阜師範大學數學科學學院學生,雖學的是數學與應用數學專業,但個人喜歡研究數據庫基礎理論,在本書寫作過程中主要負責SQL理論基礎、數據庫物理存儲等相關內容的編寫。
目錄
基 礎 篇
第1章 SQL簡介 2
1.1 SQL的曆史起源 2
1.1.1 CODASYL 3
1.1.2 IMS 3
1.1.3 RDBMS和SQL 3
1.1.4 ANSI和SQL方言 5
1.2 SQL的理論基礎 5
1.2.1 集閤理論 5
1.2.2 謂詞邏輯 6
1.2.3 關係模型 7
1.3 Transact-SQL語言的類型 10
1.3.1 DDL語句 11
1.3.2 DML語句 12
1.3.3 編程和流控製語句 12
1.3.4 SQL語句的批處理 15
1.4 Transact-SQL語法 16
1.4.1 標識符 16
1.4.2 數據類型 17
1.4.3 函數 20
1.4.4 錶達式 20
1.4.5 運算符 21
1.4.6 注釋 21
1.4.7 保留關鍵字 22
1.5 常量和變量 22
1.5.1 常量 22
1.5.2 變量 24
1.6 運算符 26
1.6.1 算術運算符 26
1.6.2 賦值運算符 28
1.6.3 位運算符 28
1.6.4 比較運算符 29
1.6.5 邏輯運算符 30
1.6.6 字符串串聯運算符 31
1.6.7 一元運算符 31
1.7 常用函數 31
1.7.1 聚閤函數 31
1.7.2 配置函數 33
1.7.3 遊標函數 34
1.7.4 日期和時間函數 35
1.7.5 數學函數 37
1.7.6 數據類型轉換函數 39
1.7.7 字符串函數 43
1.7.8 文本和圖像函數 45
1.7.9 邏輯函數 46
1.8 查詢工具 46
1.8.1 Management Studio 46
1.8.2 sqlcmd 47
1.9 SQL書寫規範 48
1.9.1 大小寫規範 49
1.9.2 使用空格 50
1.9.3 使用縮進 51
1.9.4 使用垂直空白道 51
1.9.5 使用分組 52
第2章 數據庫與架構 53
2.1 SQL Server數據庫基礎 53
2.1.1 數據庫的服務方式 53
2.1.2 數據庫實例 54
2.1.3 架構與對象 55
2.1.4 數據庫文件和文件組 56
2.2 創建數據庫 58
2.2.1 CREATE DATABASE語句的語法格式 58
2.2.2 創建數據庫示例 60
2.2.3 判斷數據庫是否已經存在 63
2.3 修改數據庫 63
2.3.1 擴展數據庫和文件 63
2.3.2 嚮數據庫中添加、刪除和修改文件組 64
2.3.3 收縮數據庫和文件 65
2.3.4 設置數據庫選項 68
2.3.5 重命名數據庫 71
2.4 刪除數據庫 71
2.5 架構管理 72
2.5.1 創建架構 72
2.5.2 修改架構 74
2.5.3 移動對象到一個新架構中 75
2.5.4 刪除架構 76
第3章 錶管理 77
3.1 錶的物理存儲方式 77
3.1.1 數據頁 77
3.1.2 區 78
3.2 創建錶 79
3.2.1 創建基本錶 79
3.2.2 使用NULL約束 79
3.2.3 使用默認約束和標識列 80
3.2.4 其他數據完整性設置 86
3.3 修改錶 88
3.3.1 為錶添加新列 89
3.3.2 修改錶中的列 89
3.3.3 刪除錶中的列 91
3.4 重命名和刪除錶 91
3.5 臨時錶 92
3.5.1 本地錶和全局錶 92
3.5.2 錶變量 93
3.6 內存優化錶 93
第4章 索引管理 95
4.1 索引的基礎知識 95
4.1.1 索引的類型 95
4.1.2 索引的特徵 99
4.1.3 常規索引設計規則 99
4.2 創建索引 101
4.2.1 最大索引限製 101
4.2.2 限製索引參與的數據類型 101
4.2.3 創建聚集索引 102
4.2.4 創建非聚集索引 103
4.2.5 創建具有包含性列的索引 104
4.2.6 為計算列創建索引 105
4.3 修改索引 107
4.3.1 禁用索引 107
4.3.2 重新組織和重新生成索引 108
4.3.3 設置索引選項 110
4.3.4 重命名索引 111
4.4 刪除索引 111
第5章 基本查詢 112
5.1 基本的SELECT語句 112
5.1.1 SELECT語句的結構 112
5.1.2 數據庫對象的引用規則 114
5.2 使用選擇列錶和錶彆名 115
5.2.1 選擇所有列 115
5.2.2 選擇特定列 115
5.2.3 使用常量、函數和錶達式 116
5.2.4 用錶彆名 121
5.3 使用WHERE子句篩選行 121
5.3.1 用比較搜索條件 121
5.3.2 使用範圍搜索條件 123
5.3.3 使用列錶搜索條件 123
5.3.4 使用模式匹配搜索條件 125
5.3.5 使用NULL比較搜索條件 127
5.4 使用GROUP BY子句進行分組計算 129
5.5 使用HAVING子句從中間結果篩選行 131
5.6 使用ORDER BY子句進行排序 132
5.6.1 指定排序列 132
5.6.2 指定排序順序 133
5.6.3 指定排序規則 134
5.7 使用TOP和OFFSET-FETCH限製結果集 137
5.7.1 使用TOP選項 137
5.7.2 使用OFFSET-FETCH篩選 139
5.7.3 使用SET ROWCOUNT語句 140
5.8 使用DISTINCT消除重復行 140
5.9 同時操作 142
5.10 查詢的邏輯處理 143
5.10.1 邏輯處理過程簡介 143
5.10.2 步驟1:FROM 147
5.10.3 步驟2:使用WHERE篩選器 151
5.10.4 步驟3:數據分組 153
5.10.5 步驟4:使用HAVING篩選器 154
5.10.6 步驟5:處理SELECT列錶 154
5.10.7 步驟6:使用ORDER BY子句 155
5.10.8 步驟7:使用TOP或OFFSET/
FETCH 156
第6章 子查詢 157
6.1 在選擇列錶中使用子查詢 157
6.1.1 子查詢示例 157
6.1.2 子查詢與聯接的關係 159
6.2 含有IN和EXISTS的子查詢 159
6.2.1 含有IN的子查詢 159
6.2.2 含有EXISTS的子查詢 161
6.2.3 含有NOT IN和NOT EXISTS的子查詢 162
6.3 含有比較運算符的子查詢 164
6.4 使用ANY、SOME或ALL關鍵字 165
6.5 使用多層嵌套子查詢 168
6.6 子查詢應遵循的規則 168
第7章 聯接和APPLY運算符 172
7.1 聯接的基本知識 172
7.1.1 聯接的語法格式 172
7.1.2 聯接所使用的邏輯處理階段 173
7.1.3 列名限定和選擇列錶的使用 174
7.1.4 聯接條件設定 175
7.2 交叉聯接 175
7.2.1 交叉聯接的語法格式 176
7.2.2 使用交叉聯接查詢全部數據 176
7.2.3 使用交叉聯接優化查詢性能 179
7.2.4 為交叉聯接添加WHERE子句 180
7.3 內部聯接 181
7.3.1 內部聯接的語法格式 181
7.3.2 等值內部聯接 182
7.3.3 不等值聯接 184
7.4 外部聯接 186
7.4.1 外部聯接的語法格式 186
7.4.2 左外部聯接 187
7.4.3 右外部聯接 190
7.4.4 完全外部聯接 191
7.5 自聯接 192
7.5.1 使用不同列實現自聯接 192
7.5.2 使用同一列實現自聯接 193
7.6 多錶聯接 194
7.6.1 順序聯接 194
7.6.2 嵌套聯接 196
7.6.3 指定聯接的物理順序 198
7.6.4 多錶聯接示例 199
7.7 聯接算法 202
7.7.1 嵌套循環聯接 202
7.7.2 閤並聯接 203
7.7.3 哈希聯接 204
7.7.4 使用聯接提示強製聯接策略 206
7.8 使用APPLY運算符 208
第8章 操作結果集 211
8.1 閤並結果集 211
8.1.1 UNION與UNION ALL 212
8.1.2 使用ORDER BY子句 213
8.1.3 結果集的閤並順序 214
8.2 查詢結果集的差異行 214
8.2.1 使用EXCEPT運算符 214
8.2.2 查詢全部差異行 216
8.3 查詢結果集的相同行 218
8.3.1 使用INTERSECT運算符 218
8.3.2查
前言/序言
鋒利的SQL(第2版) 下載 mobi epub pdf txt 電子書