SQL Server 2012 T-SQL基礎教程 [Microsoft SQL Server 2012 T-SQL Fundamentals] pdf epub mobi txt 電子書 下載
內容簡介
《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編寫查詢、開發代碼的用戶。
作者簡介
Itzik Ben-Gan,Solid Quality Learning的導師和創始人。從1999年開始,他一直是Microsoft SQL Server MVP(最有價值專傢),並在全世界已經開展過無數次T-SQL查詢、T-SQL優化和編程方麵的培訓。Itzik是Microsoft SQL Server方麵幾本著作的作者。他在SQL Server Magazine和MSDN上發錶瞭許多文章和白皮書。Itzik被邀請在許多會議上做報告,包括TechEd、DevWeek、世界各地的各種SQL用戶組、PASS、SQL Server Magazine Connections和Solid Quality Learning的會議。 從1992年開始,Itzik就一直緻力於涉及各種數據庫和計算機係統相關技術的多個課題。除瞭幫助顧客處理緊迫的要求、修復問題、優化數據庫、教學和擔任顧問以外,他還幫助開發人員和數據庫管理員轉變關係/基於集閤的理念,改善他們編寫代碼的性能和可維護性。Itzik擅長T-SQL查詢、查詢優化、編程和內部原理,此外他還精通其他的數據庫領域。1999年,Itzik創立以色列SQLServer和OLAP用戶組,一直管理至今。
內頁插圖
精彩書評
本書全麵係統地介紹瞭SQL Server 2012 T-SQL技術,包括T-SQL查詢和編程的背景、單錶查詢、聯接、子查詢、錶錶達式、集閤運算符、數據修改、事務和並發處理、可編程對象等內容。
本書提供瞭一個附錄“入門指南”,來幫助你設置環境、下載本書的源代碼、安裝TSQL2012示例數據庫、開始編寫SQL Server代碼,並瞭解如何使用SQL Server聯機叢書獲得幫助。本書還提供瞭大量的練習,幫助讀者實踐所學、快速上手。
目錄
第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聯機叢書
精彩書摘
T—SQL查詢和編程的背景即將開始一段旅程,去往一個與眾不同的領地一一它有著自己的一套規則。如果這本書是你學習nansact—SQL(T-SQL)的第一步,你現在應該就像愛麗絲一樣——這之前她剛剛開始瞭在仙境的冒險之旅。對我來說,我的長途旅行仍未結束,相反,這是一條持續充滿瞭新發現的道路。非常羨慕你現在的狀態,但幸運的是,我仍能比你提前得到一些最為激動人心的發現!
我從事與瞭-SQL相關的工作已經很多年瞭,包括教學、演講、寫作和谘詢。對我來說,T-SQL不僅僅是一種語言一一這更是一種思維方式。我在各地開展瞭瞭-SQL培訓並撰寫瞭許多相關高級主題的文章,而把編寫T-SQL基礎知識的圖書延遲至今,這不是因為T-SQL基礎知識簡單或容易,事實上恰恰相反:語言的貌似簡單往往會是一種誤導,我可以用膚淺的方式在幾分鍾內解釋語言的語法元素並讓你編寫齣查詢,但是這種做法從長期來看隻能拖你的後腿,讓你更難理解語言的本質。
作為你在這個領域的啓濛者,責任重大,在寫作基礎知識之前,我要確信自己是花瞭足夠的時間和精力去探索、理解語言。T-SQL很深奧,學習基礎知識的正確方法不僅是理解語法元素和編寫一個返迴正確輸齣的查詢,你甚至要忘記你所知道的其他編程語言,並開始思考T-SQL術語。
1.1 理論背景
SQL代錶結構化查詢語言(Structured Query Language),是一種在關係數據庫係統(RelatnaI Database Management Systems,RDBMS)中查詢和管理數據的標準語言。RDBMS是基於關係模型(一種錶示數據的語義模型)的數據庫管理係統,它基於兩個數學分支:集閤理論和謂詞邏輯。許多其他編程語言和各種計算都已演化得非常接近一個直觀結果,相比而言,SQL是基於關係模型的,它具有堅實的基礎——應用數學,T-SQL於是便坐在瞭寬廣而堅實的“肩膀”之上,它是微軟公司提供的基於Microsoft SQL Server數據管理軟件(微軟的關係數據管理係統)的SQL的方言或擴展。
本節提供瞭一個有關SQL、集閤理論和謂詞邏輯、關係模型和數據生命周期的簡短理論背景,由於這本書既不是一本數學圖書,也不是一本設計或數據建模的圖書,此處提供的理論信息比較通俗並且不是很完整,目的是嚮你提供一個T—SQL背景並傳達關鍵要點,以便在後麵能夠完整和正確理解T—SQL。語言獨立性
關係模型與語言無關。也就是說,可以使用SQL之外的其他語言(例如在類模型中使 用C#)實現關係模型,今天我們經常會看到一些RDBMS支持SQL方言之外的語言,例 如集成在SQI,Server中的CLR。
此外,從一開始你應該知道SQL與關係模型存在幾方麵的偏差。有人甚至說,應該使 用一種更嚴格遵循關係模型的新語言取代SQL,但是到目前為止,實際上SQL仍被所有 }領先的RDBMS作為工業語言。 參閱:有關SQL與關係模型偏差的詳細信息,以及如何在關係方式中使用SQL,可以參考
《SQL and Relational Theory))(第2版,作者C.J.Date,O’Reilly Media 2011年齣版)
的“H0w t0 Write Accurate SOL Code”部分。
……
前言/序言
很高興Itzik能夠有時間和精力宋編寫一本有關T—SQL基礎知識的圖書。多年來,Itzik憑藉他豐富的Microsoft SQL Server教學、輔導和谘詢經驗,編寫瞭許多高級編程方麵的圖書,但這些高級主題的圖書,既不適閤新手和經驗不足的用戶學習,也不閤適許多使用SQt.Server但又不怎麼擅長T—SQL編程的專業人士參考。
提到T—SQL,Itzik是世界上最博學的人士之一。事實上,在大多數計劃實施的新語言擴展中,我們(SQL Server開發團隊成員)都要嚮Itzik徵求專業的意見,他的反饋和指導已經成為我們SQL Server開發過程中一個重要的組成部分。
SQL Server 2012 T-SQL基礎教程 [Microsoft SQL Server 2012 T-SQL Fundamentals] 下載 mobi epub pdf txt 電子書
SQL Server 2012 T-SQL基礎教程 [Microsoft SQL Server 2012 T-SQL Fundamentals] pdf epub mobi txt 電子書 下載