內容簡介
《SQL Server 2012 T-SQL基礎教程》全面系統地介紹了SQL Server 2012 T-SQL技術,包括T-SQL查詢和編程的背景、單表查詢、聯接、子查詢、表表達式、集合運算符、查詢、數據修改、事務和並發處理、可程式對象等內容。
《SQL Server 2012 T-SQL基礎教程》提供了一個附錄“入門指南”,來幫助你設定環境、下載本書的原始碼、安裝TSQL2012示例資料庫、開始編寫SQL Server代碼,並了解如何使用SQL Server在線上叢書獲得幫助。本書還提供了大量的練習,幫助讀者實踐所學、快速上手。
《SQL Server 2012 T-SQL基礎教程》主要針對具有很少或是沒有經驗的T-SQL學習者,適用於T-SQL開發人員、DBA、BI從業者、報表編寫者、分析師以及剛開始使用SQL Server並且需要使用Transact-SQL編寫查詢、開發代碼的用戶。
圖書目錄
第1章 T-SQL查詢和編程的背景
1.1 理論背景
1.1.1 SQL
1.1.2 集合理論
1.1.3 謂詞邏輯
1.1.4 關係模型
1.1.5 數據生命周期
1.2 SQL Server體系結構
1.2.1 SQL Server的ABC特色
1.2.2 SQL Server實例
1.2.3 資料庫
1.2.4 架構和對象
1.3 創建表和定義數據完整性
1.3.1 創建表
1.3.2 定義數據完整性
1.4 小結
第2章 單表查詢
2.1 SELECT語句的元素
2.1.1 FROM子句
2.1.2 WHERE子句
2.1.3 GROUP BY子句
2.1.4 HAVING子句
2.1.5 SELECT子句
2.1.6 ORDER BY子句
2.1.7 TOP和OFFSET-FETCH篩選
2.1.8 開窗函式速覽
2.2 謂詞和運算符
2.3 CASE表達式
2.4 NULL標記
2.5 同時操作
2.6 使用字元數據
2.6.1 數據類型
2.6.2 排序規則
2.6.3 運算符和函式
2.7 使用日期和時間數據
2.7.1 日期和時間數據類型
2.7.2 日期和時間常量
2.7.3 獨立使用日期和時間
2.7.4 篩選日期範圍
2.7.5 日期和時間函式
2.8 查詢元數據
2.8.1 目錄視圖
2.8.2 信息架構視圖
2.8.3 系統存儲過程和函式
2.9 小結
2.10 練習
2.10.1 練習
2.10.2 練習
2.10.3 練習
2.10.4 練習
2.10.5 練習
2.10.6 練習
2.10.7 練習
2.10.8 練習
2.11 解決方案
2.11.1 解決方案
2.11.2 解決方案
2.11.3 解決方案
2.11.4 解決方案
2.11.5 解決方案
2.11.6 解決方案
2.11.7 解決方案
2.11.8 解決方案
第3章 聯接
3.1 交叉聯接
3.1.1 ANSI SQL-92語法
3.1.2 ANSI SQL-89語法
3.1.3 自交叉聯接
3.1.4 生成數字表
3.2 內部聯接
3.2.1 ANSI SQL-92語法
3.2.2 ANSI SQL-89語法
3.2.3 內部聯接安全性
3.3 更多聯接示例
3.3.1 複合聯接
3.3.2 不等聯接
3.3.3 多聯接查詢
3.4 外部聯接
3.4.1 外部聯接的基礎知識
3.4.2 超越外部聯接基礎知識
3.5 小結
3.6 練習
3.6.1 練習1-
3.6.2 練習1-2(可選的高級練習)
3.6.3 練習
3.6.4 練習
3.6.5 練習
3.6.6 練習
3.6.7 練習6(可選的高級練習)
3.6.8 練習7(可選的高級練習)
3.7 解決方案
3.7.1 解決方案1-
3.7.2 解決方案1-
3.7.3 解決方案
3.7.4 解決方案
3.7.5 解決方案
3.7.6 解決方案
3.7.7 解決方案
3.7.8 解決方案
第4章 子查詢
4.1 自包含子查詢
4.1.1 自包含標量子查詢示例
4.1.2 自包含多值子查詢示例
4.2 相關子查詢
4.2.1 EXISTS謂詞
4.3 超越子查詢基礎知識
4.3.1 返回前一個或下一個值
4.3.2 使用運行聚合
4.3.3 不當子查詢處理
4.4 小結
4.5 練習
4.5.1 練習
4.5.2 練習2(可選的高級練習)
4.5.3 練習
4.5.4 練習
4.5.5 練習
4.5.6 練習
4.5.7 練習7(可選的高級練習)
4.5.8 練習8(可選的高級練習)
4.6 解決方案
4.6.1 解決方案
4.6.2 解決方案
4.6.3 解決方案
4.6.4 解決方案
4.6.5 解決方案
4.6.6 解決方案
4.6.7 解決方案
4.6.8 解決方案
第5章 表表達式
5.1 派生表
5.1.1 分配列別名
5.1.2 使用參數
5.1.3 嵌套
5.1.4 多個引用
5.2 公用表表達式
5.2.1 在CTE中分配列別名
5.2.2 在CTE中使用參數
5.2.3 定義多個CTE
5.2.4 CTE中的多個引用
5.2.5 遞歸CTE
5.3 視圖
5.3.1 視圖和ORDER BY子句
5.3.2 視圖選項
5.4 內嵌表值函式
5.5 APPLY運算符
5.6 小結
5.7 練習
5.7.1 練習1-
5.7.2 練習1-
5.7.3 練習2-
5.7.4 練習2-
5.7.5 練習3(可選的高級練習)
5.7.6 練習4-
5.7.7 練習4-2(可選的高級練習)
5.7.8 練習5-
5.7.9 練習5-
5.8 解決方案
5.8.1 解決方案1-
5.8.2 解決方案1-
5.8.3 解決方案2-
5.8.4 解決方案2-
5.8.5 解決方案
5.8.6 解決方案4-
5.8.7 解決方案4-
5.8.8 解決方案5-
5.8.9 解決方案5-
第6章 集合運算符
6.1 UNION運算符
6.1.1 UNION ALL多元集合運算符
6.1.2 UNION非重複項集合運算符
6.2 INTERSECT運算符
6.2.1 INTERSECT非重複項集合運算符
6.2.2 INTERSECT ALL多元集合運算符
6.3 EXCEPT運算符
6.3.1 EXCEPT非重複項集合運算符
6.3.2 EXCEPT ALL多元集合運算符
6.4 優先權
6.5 規避不支持的邏輯階段
6.6 小結
6.7 練習
6.7.1 練習
6.7.2 練習
6.7.3 練習
6.7.4 練習
6.7.5 練習5(可選的高級練習)
6.8 解決方案
6.8.1 解決方案
6.8.2 解決方案
6.8.3 解決方案
6.8.4 解決方案
6.8.5 解決方案
第7章 查詢
7.1 開窗函式
7.1.1 排名開窗函式
7.1.2 偏移開窗函式
7.1.3 聚合開窗函式
7.2 透視數據
7.2.1 使用標準SQL透視
7.2.2 使用本地T-SQL PIVOT運算符透視
7.3 逆透視數據
7.3.1 使用標準SQL逆透視
7.3.2 使用本地T-SQL UNPIVOT運算符逆透視
7.4 分組集
7.4.1 GROUPING SETS從屬子句
7.4.2 CUBE從屬子句
7.4.3 ROLLUP從屬子句
7.4.4 GROUPING和GROUPING_ID函式
7.5 小結
7.6 練習
7.6.1 練習
7.6.2 練習
7.6.3 練習
7.6.4 練習
7.6.5 練習
7.7 解決方案
7.7.1 解決方案
7.7.2 解決方案
7.7.3 解決方案
7.7.4 解決方案
7.7.5 解決方案
第8章 數據修改
8.1 插入數據
8.1.1 INSERT VALUES語句
8.1.2 INSERT SELECT語句
8.1.3 INSERT EXEC語句
8.1.4 SELECT INTO語句
8.1.5 BULK INSERT語句
8.1.6 標識列屬性和序列對象
8.2 刪除數據
8.2.1 DELETE語句
8.2.2 TRUNCATE語句
8.2.3 基於聯接的DELETE
8.3 更新數據
8.3.1 UPDATE語句
8.3.2 基於聯接的UPDATE
8.3.3 賦值UPDATE
8.4 合併數據
8.5 通過表表達式修改數據
8.6 使用TOP和OFFSET-FETCH修改
8.7 OUTPUT子句
8.7.1 INSERT與OUTPUT
8.7.2 DELETE與OUTPUT
8.7.3 UPDATE與OUTPUT
8.7.4 MERGE與OUTPUT
8.7.5 可組合的DML
8.8 小結
8.9 練習
8.9.1 練習
8.9.2 練習1-
8.9.3 練習1-
8.9.4 練習1-
8.9.5 練習
8.9.6 練習
8.9.7 練習
8.9.8 練習
8.9.9 練習
8.10 解決方案
8.10.1 解決方案1-
8.10.2 解決方案1-
8.10.3 解決方案1-
8.10.4 解決方案
8.10.5 解決方案
8.10.6 解決方案
8.10.7 解決方案
第9章 事務和並發處理
9.1 事務
9.2 鎖和阻塞
9.2.1 鎖
9.2.2 排除阻塞
9.3 隔離級別
9.3.1 READ UNCOMMITTED隔離級別
9.3.2 READ COMMITTED隔離級別
9.3.3 REPEATABLE READ隔離級別
9.3.4 SERIALIZABLE隔離級別
9.3.5 基於行版本的隔離級別
9.3.6 隔離級別總結
9.4 死鎖
9.5 小結
9.6 練習
9.6.1 練習1-
9.6.2 練習1-
9.6.3 練習1-
9.6.4 練習1-
9.6.5 練習1-
9.6.6 練習1-
9.6.7 練習2-
9.6.8 練習2-
9.6.9 練習2-
9.6.10 練習2-
9.6.11 練習2-
9.6.12 練習2-
9.6.13 練習3-
9.6.14 練習3-
9.6.15 練習3-
9.6.16 練習3-
9.6.17 練習3-
9.6.18 練習3-
9.6.19 練習3-
第10章 可程式對象
10.1 變數
10.2 批
10.2.1 以批為單元的語法分析
10.2.2 批和變數
10.2.3 不能被組合在同一個批中的語句
10.2.4 以批為單元的解析
10.2.5 GO n選項
10.3 流元素
10.3.1 IF...ELSE流元素
10.3.2 WHILE流元素
10.3.3 使用IF和WHILE的示例
10.4 游標
10.5 臨時表
10.5.1 本地臨時表
10.5.2 全局臨時表
10.5.3 表變數
10.5.4 表類型
10.6 動態SQL
10.6.1 EXEC命令
10.6.2 sp_executesql存儲過程
10.6.3 使用動態SQL的PIVOT
10.7 例程
10.7.1 用戶定義函式
10.7.2 存儲過程
10.7.3 觸發器
10.8 錯誤處理
10.9 小結
附錄A 入門指南
A.1 SQL Database入門
A.2 安裝(企業)內部部署的SQL Server
A.2.1 獲取SQL Server
A.2.2 創建一個用戶賬戶
A.2.3 安裝的必要條件
A.2.4 安裝資料庫引擎、文檔和工具
A.3 下載原始碼和安裝示例資料庫
A.3.1 在(企業)內部部署的SQL Server實例中創建並填充示例資料庫
A.3.2 在SQL Database中創建並填充示例資料庫
A.4 使用SQL Server Management Studio
A.5 使用SQL Server在線上叢書