內容簡介
《T-SQL編程入門經典(涵蓋SQL Server 2008&2005)》是學習T-SQL編程的最佳入門指南,涵蓋了在SQL Server 2005和2008中使用T-SQL的所有基礎知識,並結合實例較深入地探討了T-SQL最常見的套用。重點介紹了如何使用T-SQL創建管理資料庫的工具、如何使用視圖、用戶自定義函式和存儲過程進行T-SQL編程,如何最佳化查詢性能以及如何創建資料庫等內容。
幾乎所有的企業應用程式都要讀取、存儲和處理關係資料庫中的數據。只要使用Microsoft SQL Server,就需要學習使用T-SQL,這是Microsoft為ANSI標準的SQL資料庫查詢語言提供的強大的實現方案。
《T-SQL編程入門經典(涵蓋SQL Server 2008&2005)》介紹了在SQL Server 2008和2005中使用T-SQL的所有基礎知識。作者是頂尖的T-SQL專家,他們從SQL Server的本質出發首先介紹了掌握T-SQL所需的內容,接著討論T-SQL本身,包括數據檢索的核心元素、SQL函式、聚合和分組,以及多表查詢,還詳細介紹了事務處理以及使用T-SQL處理數據的方法。
《T-SQL編程入門經典(涵蓋SQL Server 2008&2005)》還描述了如何創建和管理T-SQL編程對象,包括視圖、函式和存儲過程,詳細論述了如何最佳化T-SQL查詢的性能,如何為實際的企業應用程式設計查詢。《T-SQL編程入門經典(涵蓋SQL Server 2008&2005)》的所有方法和技巧都可用於Microsoft SQL Server 2008和2005資料庫。
另外,《T-SQL編程入門經典(涵蓋SQL Server 2008&2005)》還包含較全面的參考附錄,包括T-SQL命令語法、系統變數和函式、系統存儲過程、信息模式視圖和FileStream對象。
編輯推薦
《T-SQL編程入門經典(涵蓋SQL Server 2008&2005)》主要內容:
◆ 添加、修改和刪除記錄;
◆ 查詢多個表;
◆ 利用視圖修改數據的方法;
◆ 使用T-SQL創建管理資料庫的工具;
◆ 使用視圖、用戶自定義函式和存儲過程的T-SQL編程技巧;
◆ 最佳化查詢性能的方法;
◆ 使用SQL Server報表服務可視化T-SQL查詢的結果。
作者簡介
作者:(美國)圖雷(Turley.P.) (美國)伍德(Wood.D.) 譯者:吳偉平
Paul Turley,微軟認證培訓師,是美國Hitachi諮詢教育服務的專業服務主管,管理商業智慧型培訓團隊,為世界各公司(如微軟、迪斯尼、耐克和惠普)提供Microsoft SQL Server技術的培訓,設計並構建BI和報表解決方案。Paul是一位多產的作者,除本書外,他的著作還包括Beginning T-SQL with SQL Server 2000 and 2005、SQL Server 2008 Business Intelligence Solutions、SQL Server 2008 Reporting Services Solutions 等。
Dan Wood,頂尖的SQL Server DBA.顧問和培訓師,是美國Avalara家銷售稅服務公司)的資深資料庫管理員。除本書外,Dan的著作還包括Beginning Transact-SQL with SQL Server 2000 and 2005、Beginning SQL Server Administration。
目錄
第1章 T-SQL和數據管理系統簡介
1.1 T-SQL語言
1.1.1 T-SQL:是程式語言還是查詢語言
1.1.2 SQL Server 2008中的新特性
1.1.3 資料庫管理系統(DBMS)
1.2 作為關係資料庫管理系統的SQL Server
1.2.1 表
1.2.2 關係
1.2.3 RDBMS與數據完整性
1.3 SQL Server與其他產品
1.3.1 Microsoft SQL Server
1.3.2 Oracle
1.3.3 IBM DB2
1.3.4 Informix
1.3.5 Sybase SQLAnywhere
1.3.6 Microsoft Access(Jet)
1.3.7 MySQL
1.4 小結
第2章 SQL Server基礎
2.1 誰使用SQL Server
2.2 SQL Server版本和功能
2.2.1 SQL Server壓縮版
2.2.2 SQL Server Express版
2.2.3 SQL Server工作組版
2.2.4 SQL Server標準版
2.2.5 SQL Server企業版
2.2.6 關係資料庫引擎
2.3 語義
2.3.1 變化的術語
2.3.2 關係
2.3.3 主鍵
2.3.4 外鍵
2.4 規範化規則
2.5 套用規範化規則
2.5.1 想一想
2.5.2 多重關聯
2.5.3 多值列
2.5.4 規範化還是去規範化
2.5.5 質疑權威
2.6 查詢處理的機制
2.7 AdventureWorks資料庫
2.8 小結
第3章 SQL Server工具
3.1 常見的SQL Server任務
3.2 SQL Server Management Studio
3.2.1 工具視窗
3.2.2 工具列
3.2.3 SQL Server Management Studio配置
3.3 SQL Server Business Intelligence Development Studio
3.4 SQL Server Profiler
3.5 Database Tuning Advisor
3.6 SQL Server Configuration Manager
3.7 命令行工具
3.8 編寫查詢
3.8.1 腳本選項
3.8.2 使用圖形化的查詢設計器
3.8.3 使用模板
3.8.4 使用調試功能
3.9 小結
3.10 習題
第4章 T-SQL語言
4.1 SQL的本質
4.2 從哪兒開始
4.3 數據操縱語言(DML)
4.3.1 查詢是有層次的
4.3.2 基於集合的操作
4.3.3 基於行的操作
4.3.4 查詢語法基礎
4.3.5 命名規範
4.3.6 對象的界定
4.3.7 注釋腳本
4.3.8 使用模板
4.3.9 生成腳本
4.3.10 管理腳本
4.3.11 版本控制
4.4 數據定義語言
4.4.1 創建表
4.4.2 創建視圖
4.4.3 創建存儲過程
4.4.4 創建觸發器
4.4.5 創建用戶自定義函式
4.4.6 腳本編寫實踐
4.5 數據控制語言
4.6 小結
4.7 習題
第5章 數據檢索
5.1 存儲與檢索
5.2 SELECT語句
5.2.1 列的選擇
5.2.2 列的別名
5.2.3 被計算和繼承的列
5.2.4 行的過濾
5.2.5 WHERE子句
5.2.6 使用括弧
5.2.7 結果排序
5.2.8 排在前面的值
5.3 小結
5.4 習題
第6章 SQL函式
6.1 函式的組成
6.1.1 一個論點
6.1.2 確定性函式
6.1.3 在函式中使用用戶變數
6.1.4 在查詢中使用函式
6.1.5 嵌套函式
6.2 聚合函式
6.2.1 AVG()函式
6.2.2 COUNT()函式
6.2.3 MIN()與MAX()函式
6.2.4 SUM()函式
6.3 配置變數
6.3.1 @@ERROR變數
6.3.2 @@SERVICENAME變數
6.3.3 @@TOTALE_RRORS變數
6.3.4 @@TOTAL_READ變數
6.3.5 @@VERSION變數
6.3.6 錯誤函式
6.4 轉換函式
6.4.1 CAST()函式
6.4.2 CONVERT()函式
6.4.3 STR()函式
6.5 游標函式與變數
6.5.1 CURSOR_STATUS()函式
6.5.2 @@CURSOR_ROWS全局變數
6.5.3 @@FETCH_STATUS全局變數
6.6 日期函式
6.6.1 DATEADD()函式
6.6.2 DATEDIFF()函式
6.6.3 DATEPART()與DATENAME()函式
6.6.4 GETDATE()與GETUTCDATE()函式
6.6.5 SYSDATETIME()和SYSUTCDATETIME()函式
6.6.6 DAY(). MONTH()和YEAR()函式
6.7 字元串操縱函式
6.7.1 ASCII(). CHAR(). UNICODE()和NCHAR()函式
6.7.2 CHARINDEX()和PATINDEX()函式
6.7.3 LEN()函式
6.7.4 LEFT()與RIGHT()函式
6.7.5 SUBSTRING()函式
6.7.6 LOWER()與UPPER()函式
6.7.7 LTRIM()與RTRIM()函式
6.7.8 REPLACE()函式
6.7.9 REPLICATE()與SPACE()函式
6.7.10 REVERSE()函式
6.7.11 STUFF()函式
6.7.12 QUOTENAME()函式
6.8 數學函式
6.9 元數據函式
6.10 排列函式
6.10.1 ROW_NUMBER()函式
6.10.2 RANK()與DENSE_RANK()函式
6.11.3 NTILE(n)函式
6.11 安全函式
6.12 系統函式與系統變數
6.12.1 COALESCE()函式
6.12.2 DATALENGTH()函式
6.13 系統統計變數
6.14 小結
6.15 習題
第7章 聚合與分組
7.1 分組還是不分組
7.2 使用聚合函式
7.2.1 COUNT()函式
7.2.2 SUM()函式
7.2.3 AVG()函式
7.3 理解統計函式
7.3.1 STDEV()函式
7.3.2 STDEVP()函式
7.3.3 VAR()函式
7.3.4 VARP()函式
7.3.5 用戶自定義的聚合函式
7.4 數據分組
7.4.1 GROUP BY子句
7.4.2 HAVING子句
7.4.3 總計與小計
7.4.4 子分組
7.4.5 ROLLUP子句
7.4.6 CUBE子句
7.4.7 GROUPING()函式
7.4.8 COMPUTE與COMPUTE BY子句
7.5 小結
7.6 習題
第8章 多表查詢
8.1 理解子查詢與連線
8.1.1 在WHERE子句中連線表
8.1.2 在FROM子句中連線表
8.1.3 連線的類型
8.1.4 內連線
8.1.5 外連線
8.1.6 多列連線
8.1.7 非同等連線
8.1.8 特殊目的的連線運算
8.1.9 合併查詢
8.2 小結
8.3 習題
第9章 高級查詢與腳本
9.1 子查詢
9.1.1 標量表達式
9.1.2 交換連線運算
9.1.3 互相關聯的子查詢
9.1.4 子查詢業務案例
9.2 Common Table Expressions(CTE)
9.3 游標
9.3.1 行集(rowset)與游標操作
9.3.2 創建與遍歷游標
9.4 小結
9.5 習題
第10章 數據事務
10.1 事務簡介
10.1.1 事務類型
10.1.2 ACID測試
10.1.3 事務日誌
10.1.4 記入日誌的操作
10.2 對數據執行CRUD
10.2.1 添加記錄
10.2.2 修改記錄
10.2.3 刪除記錄
10.2.4 用MERGE命令自動完成插入、更新和刪除操作
10.3 顯式事務
10.4 小結
10.5 習題
第11章 高級功能
11.1 數據的透視
11.1.1 PIVOT操作符
11.1.2 UNPIVOT操作符
11.2 全文索引和近似匹配
11.3 Microsoft 搜尋服務
11.3.1 音索匹配
11.3.2 DIFFERENCE()函式
11.4 管理並填寫目錄
11.5 小結
11.6 習題
第12章 T-SQL編程對象
12.1 視圖
12.1.1 虛表
12.1.2 創建視圖
12.1.3 保護數據
12.1.4 隱藏複雜性
12.2 存儲過程
12.2.1 用存儲過程實現帶參數的視圖
12.2.2 使用參數
12.2.3 返回值
12.2.4 記錄的維護
12.2.5 處理和引發錯誤
12.2.6 錯誤訊息
12.2.7 處理業務邏輯
12.2.8 循環
12.3 用戶自定義函式
12.3.1 標量函式
12.3.2 內嵌表值函式
12.3.3 多語句表值函式
12.4 事務管理
12.5 小結
12.6 習題
第13章 創建和管理資料庫對象
13.1 數據定義語言
13.1.1 創建對象
13.1.2 修改對象
13.1.3 刪除對象
13.1.4 對象的命名
13.1.5 創建DDL腳本
13.1.6 創建表
13.1.7 唯一標識符
13.1.8 約束
13.1.9 創建視圖
13.1.10 帶索引的視圖
13.1.11 創建存儲過程
13.1.12 CREATE FUNCTION
13.2 IF EXISTS
13.3 資料庫對象的安全
13.3.1 管理安全性對象
13.3.2 數據控制語言
13.4 小結
13.5 習題
第14章 分析和最佳化查詢性能
14.1 數據檢索
14.2 分析查詢
14.2.1 會話選項
14.2.3 圖形化執行計畫
14.3 編寫高效的T-SQL(最佳實踐方式)
14.4 小結
14.5 習題
第15章 T-SQL在應用程式與報表中的套用
15.1 應用程式編程模型
15.2 選擇模型
15.2.1 桌面資料庫應用程式
15.2.2 客戶/伺服器資料庫解決方案
15.2.3 n層組件解決方案
15.2.4 Web伺服器應用程式
15.2.5 多層Web服務解決方案
15.2.6 多系統集成解決方案
15.3 SQL Server 2008報表服務
15.3.1 報表服務的體系結構
15.3.2 SQL Server 2008報表設計器
15.3.3 部署報表
15.3.4 用報表管理器查看報表
15.3.5 報表數據快取
15.2.6 商業智慧型和業務報表
15.3.7 報表應用程式的集成
15.4 小結
附錄A 命令語法參考
附錄B 系統變數與函式參考
附錄C 系統存儲過程參考
附錄D 信息模式視圖參考
附錄E FileStream對象和語法
附錄F 習題答案