《sql server從入門到精通(第2版)》從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了SQL Server 2012開發應該掌握的各方面技術。《SQL Server從入門到精通(第2版)》共分為4篇20章,包括數據庫基礎、初識SQL Server 2012、SQL Server 2012服務的啟動與注冊、創建與管理數據庫、操作數據表、SQL基礎、SQL函數的使用、SQL數據查詢基礎、SQL數據高級查詢、視圖的使用、存儲過程、觸發器、游標的使用、索引與數據完整性、SQL中的事務、維護SQL Server 2012、數據庫的安全機制、Visual C++ + SQL Server實現圖書管理系統、C# + SQL Server實現企業人事管理系統、Java + SQL Server實現企業進銷存管理系統等。所有知識都結合具體實例進行介紹,涉及的程序代碼給出了詳細的注釋,讀者可以輕松領會SQL Server 2012的精髓,快速提高開發技能。
《sql server從入門到精通(第2版)》內容詳盡,實例豐富,非常適合作為編程初學者的學習用書,也適合作為開發人員的查閱、參考資料。 明日科技,是一家專業從事軟件開發、教育培訓以及軟件開發教育資源整合的高科技公司,其編寫的教材既注重選取軟件開發中的必需、常用內容,又注重內容的易學、方便以及相關知識的拓展,深受讀者喜愛。其編寫的圖書主要有“軟件開發視頻大講堂”“軟件開發實戰1200例”“軟件工程師開發大系”等系列。多次榮獲“全行業暢銷品種”“中國大學出版社暢銷書”等獎項,多個品種長期位居同類圖書銷售排行榜的前列。
叢書說明:“軟件開發視頻大講堂”叢書(第1版)于2008年8月出版,因其編寫細膩,易學實用,配備全程視頻等,在軟件開發類圖書市場上產生了很大反響,絕大部分品種在全國軟件開發零售圖書排行榜中名列前茅,2009年多個品種被評為“全國優秀暢銷書”。
“軟件開發視頻大講堂”叢書(第2版)于2010年8月出版,出版后,絕大部分品種在全國軟件開發類零售圖書排行榜中依然名列前茅。叢書中多個品種被百余所高校計算機相關專業、軟件學院選為教學參考書,在眾多的軟件開發類圖書中成為最耀眼的品牌之一。叢書累計銷售40多萬冊。
“軟件開發視頻大講堂”叢書(第3版)于2012年8月出版,根據讀者需要,增刪了品種,重新錄制了視頻,提供了從“入門學習→實例應用→模塊開發→項目開發→能力測試→面試”等各個階段的海量開發資源庫。因叢書編寫結構合理、實例選擇經典實用,叢書迄今累計銷售90多萬冊。
“軟件開發視頻大講堂”叢書(第4版)在繼承前3版所有優點的基礎上,修正了前3版圖書中發現的疏漏之處,并結合目前市場需要,進一步對叢書品種進行了完善,對相關內容進行了更新優化,使之更適合讀者學習,為了方便教學,還提供了教學課件PPT。
SQLServer是由美國微軟公司制作并發布的一種性能優越的關系型數據庫管理系統(RelationalDatabaseManagementSystem,RDBMS),因其具有良好的數據庫設計、管理與網絡功能,又與Windows、Windows2000以及WindowsXP系統緊密集成,因此成為數據庫產品的首選。
本書內容
本書提供了從入門到編程高手所必備的各類知識,共分為4篇,大體結構如下所示。
第1篇:基礎知識。本篇通過數據庫基礎、初識SQLServer2012、SQLServer2012服務的啟動與注冊、創建與管理數據庫、操作數據表的內容介紹,并結合大量的圖示、舉例、錄像等幫助讀者快速掌握SQLServer2012,并為以后的知識奠定堅實的基礎。
第2篇:核心技術。本篇介紹SQL基礎、SQL函數的使用、SQL數據查詢基礎、SQL數據高級查詢、視圖的使用等。學習完這一部分,能夠了解和熟悉T-SQL及常用的函數,使用T-SQL操作SQLServer2012數據庫中的視圖,掌握SQL查詢、子查詢、嵌套查詢、聯接查詢的用法等。
第3篇:高級應用。本篇介紹存儲過程、觸發器、游標的使用、索引與數據完整性、SQL中的事務、維護SQLServer2012、數據庫的安全機制等。學習完這一部分,能夠使用索引優化數據庫查詢;使用存儲過程、觸發器、游標、事務等編寫SQL語句,不僅可以優化查詢,還可以提高數據訪問速度;更好地維護SQLServer2012及其安全。
第4篇:項目實戰。本篇分別使用VisualC++、C#、Java3種語言,結合SQLServer2012實現了3個大型、完整的管理系統,通過這3個項目,運用軟件工程的設計思想,幫助讀者學習如何進行軟件項目的實踐開發。書中按照編寫系統分析→系統設計→數據庫與數據表設計→公共類設計→創建項目→實現項目→項目總結的過程進行介紹,帶領讀者一步一步親身體驗開發項目的全過程。
本書特點
由淺入深,循序漸進:本書以初、中級程序員為對象,先從SQLServer基礎學起,再學習SQLServer的核心技術,然后學習SQLServer的高級應用,最后學習分別使用VisualC++、C#、Java等語言結合SQLServer2012開發完整項目。講解過程中步驟詳盡,版式新穎,在操作的內容圖片上以“???…”編號+內容的方式進行標注,讓讀者在閱讀中一目了然,從而快速把握書中內容。
語音視頻,講解詳盡:書中每一章節均提供聲圖并茂的教學視頻,讀者可以在光盤中找到相應章節的視頻。這些視頻能夠引導初學者快速入門,感受編程的快樂和成就感,增強進一步學習的信心,從而快速成為編程高手。
實例典型,輕松易學:通過例子學習是最好的學習方式,本書通過一個知識點、一個例子、一個結果、一段評析、一個綜合應用的模式,透徹詳盡地講述了實際開發中所需的各類知識。
精彩欄目,貼心提醒:本書根據需要在各章使用了很多“注意”“說明”等小欄目,讓讀者可以在學習過程中更輕松地理解相關知識點及概念,并輕松地掌握個別技術的應用技巧。
應用實踐,隨時練習:書中幾乎每章都提供了“實踐與練習”,讀者能夠通過對問題的解答重新回顧、熟悉所學的知識,舉一反三,為進一步學習做好充分的準備。
讀者對象
初學編程的自學者?編程愛好者
大中專院校的老師和學生?相關培訓機構的老師和學員
畢業設計的學生?初中級程序開發人員
程序測試及維護人員?參加實習的“菜鳥”程序員
編者
第1篇 基 礎 知 識
第1章 數據庫基礎
視頻講解:26分鐘
1.1 數據庫系統簡介
1.1.1 數據庫技術的發展
1.1.2 數據庫系統的組成
1.2 數據庫的體系結構
1.2.1 數據庫三級模式結構
1.2.2 三級模式之間的映射
1.3 數據模型
1.3.1 數據模型的概念
1.3.2 常見的數據模型
1.3.3 關系數據庫的規范化
1.3.4 關系數據庫的設計原則
1.3.5 實體與關系
1.4 常見關系數據庫
1.4.1 Access數據庫
1.4.2 SQL Server 2000數據庫
1.4.3 SQL Server 2005數據庫
1.4.4 SQL Server 2008數據庫
1.4.5 SQL Server 2012數據庫
1.4.6 Oracle數據庫
1.5 小結
1.6 實踐與練習
第2章 初識SQL Server 2012
視頻講解:33分鐘
2.1 SQL Server 2012簡介
2.2 SQL Server 2012的特點
2.3 SQL Server 2012的安裝與卸載
2.3.1 SQL Server 2012安裝必備
2.3.2 SQL Server 2012的安裝
2.3.3 SQL Server 2012的卸載
2.4 使用SQL Server 2012的幫助
2.5 小結
2.6 實踐與練習
第3章 SQL Server 2012服務的啟動與注冊
3.1 SQL Server 2012的服務
3.2 啟動SQL Server 2012服務
3.2.1 后臺啟動服務
3.2.2 通過配置管理器啟動
3.3 注冊SQL Server 2012服務器
3.3.1 創建與刪除服務器組
3.3.2 注冊與刪除服務器
3.4 小結
3.5 實踐與練習
第4章 創建與管理數據庫
視頻講解:35分鐘
4.1 認識數據庫
4.1.1 數據庫基本概念
4.1.2 數據庫常用對象
4.1.3 數據庫組成
4.1.4 系統數據庫
4.2 SQL Server的命名規則
4.2.1 標識符
4.2.2 對象命名規則
4.2.3 實例命名規則
4.3 數據庫的創建與管理
4.3.1 創建數據庫
4.3.2 修改數據庫
4.3.3 刪除數據庫
4.4 小結
4.5 實踐與練習
第5章 操作數據表
視頻講解:78分鐘
5.1 數據表基礎
5.1.1 基本數據類型
5.1.2 用戶自定義數據類型
5.1.3 數據表的數據完整性
5.2 數據表的創建與管理
5.2.1 以界面方式操作數據表
5.2.2 使用CREATE TABLE語句創建表
5.2.3 使用ALTER TABLE語句修改表結構
5.2.4 使用DROP TABLE語句刪除表
5.3 管理數據
5.3.1 使用INSERT語句添加數據
5.3.2 使用UPDATE語句修改數據
5.3.3 使用DELETE語句刪除數據
5.4 創建、刪除和修改約束
5.4.1 非空約束
5.4.2 主鍵約束
5.4.3 唯一約束
5.4.4 檢查約束
5.4.5 默認約束
5.4.6 外鍵約束
5.5 關系的創建與維護
5.5.1 一對一關系
5.5.2 一對多關系
5.5.3 多對多關系
5.6 小結
5.7 實踐與練習
第2篇 核 心 技 術
第6章 SQL基礎
視頻講解:51分鐘
6.1 T-SQL概述
6.1.1 T-SQL的組成
6.1.2 T-SQL語句結構
6.1.3 T-SQL語句分類
6.2 常量
6.2.1 數字常量
6.2.2 字符串常量
6.2.3 日期和時間常量
6.2.4 符號常量
6.3 變量
6.3.1 局部變量
6.3.2 全局變量
6.4 注釋符、運算符與通配符
6.4.1 注釋符
6.4.2 運算符
6.4.3 通配符
6.5 流程控制
6.5.1 BEGIN…END
6.5.2 IF
6.5.3 IF…ELSE
6.5.4 CASE
6.5.5 WHILE
6.5.6 WHILE…CONTINUE…BREAK
6.5.7 RETURN
6.5.8 GOTO
6.5.9 WAITFOR
6.6 常用命令
6.6.1 DBCC
6.6.2 CHECKPOINT
6.6.3 DECLARE
6.6.4 PRINT
6.6.5 RAISERROR
6.6.6 READTEXT
6.6.7 BACKUP
6.6.8 RESTORE
6.6.9 SELECT
6.6.10 SET
6.6.11 SHUTDOWN
6.6.12 WRITETEXT
6.6.13 USE
6.7 小結
6.8 實踐與練習
第7章 SQL函數的使用
視頻講解:43分鐘
7.1 聚合函數
7.1.1 聚合函數概述
7.1.2 SUM(求和)函數
7.1.3 AVG(平均值)函數
7.1.4 MIN(最小值)函數
7.1.5 MAX(最大值)函數
7.1.6 COUNT(統計)函數
7.1.7 DISTINCT(取不重復記錄)函數
7.1.8 查詢重復記錄
7.2 數學函數
7.2.1 數學函數概述
7.2.2 ABS(絕對值)函數
7.2.3 PI(圓周率)函數
7.2.4 POWER(乘方)函數
7.2.5 RAND(隨機浮點數)函數
7.2.6 ROUND(四舍五入)函數
7.2.7 SQUARE(平方)函數和SQRT(平方根)函數
7.2.8 三角函數
7.3 字符串函數
7.3.1 字符串函數概述
7.3.2 ASCII(獲取ASCII碼)函數
7.3.3 CHARINDEX(返回字符串的起始位置)函數
7.3.4 LEFT(取左邊指定個數的字符)函數
7.3.5 RIGHT(取右邊指定個數的字符)函數
7.3.6 LEN(返回字符個數)函數
7.3.7 REPLACE(替換字符串)函數
7.3.8 REVERSE(返回字符表達式的反轉)函數
7.3.9 STR函數
7.3.10 SUBSTRING(取字符串)函數
7.4 日期和時間函數
7.4.1 日期和時間函數概述
7.4.2 GETDATE(返回當前系統日期和時間)函數
7.4.3 DAY(返回指定日期的天)函數
7.4.4 MONTH(返回指定日期的月)函數
7.4.5 YEAR(返回指定日期的年)函數
7.4.6 DATEDIFF(返回日期和時間的邊界數)函數
7.4.7 DATEADD(添加日期時間)函數
7.5 轉換函數
7.5.1 轉換函數概述
7.5.2 CAST函數
7.5.3 CONVERT函數
7.6 元數據函數
7.6.1 元數據函數概述
7.6.2 COL_LENGTH函數
7.6.3 COL_NAME函數
7.6.4 DB_NAME函數
7.7 小結
7.8 實踐與練習
第8章 SQL數據查詢基礎
視頻講解:48分鐘
8.1 SELECT檢索數據
8.1.1 SELECT語句的基本結構
8.1.2 WITH子句
8.1.3 SELECT…FROM子句
8.1.4 INTO子句
8.1.5 WHERE子句
8.1.6 GROUP BY子句
8.1.7 HAVING子句
8.1.8 ORDER BY子句
8.1.9 COMPUTE子句
8.1.10 DISTINCT關鍵字
8.1.11 TOP關鍵字
8.2 UNION合并多個查詢結果
8.2.1 UNION與聯接之間的區別
8.2.2 使用UNION ALL合并表
8.2.3 UNION中的ORDER BY子句
8.2.4 UNION中的自動數據類型轉換
8.2.5 使用UNION合并不同類型的數據
8.2.6 使用UNION合并有不同列數的兩個表
8.2.7 使用UNION進行多表合并
8.3 小結
8.4 實踐與練習
第9章 SQL數據高級查詢
視頻講解:26分鐘
9.1 子查詢與嵌套查詢
9.1.1 子查詢概述
9.1.2 嵌套查詢概述
9.1.3 簡單的嵌套查詢
9.1.4 帶IN的嵌套查詢
9.1.5 帶NOT IN的嵌套查詢
9.1.6 帶SOME的嵌套查詢
9.1.7 帶ANY的嵌套查詢
9.1.8 帶ALL的嵌套查詢
9.1.9 帶EXISTS的嵌套查詢
9.2 聯接查詢
9.2.1 內部聯接
9.2.2 外部聯接
9.2.3 交叉聯接
9.2.4 聯接多表
9.3 使用CASE函數進行查詢
9.4 小結
9.5 實踐與練習
第10章 視圖的使用
視頻講解:20分鐘
10.1 視圖概述
10.2 視圖的分類與操作
10.2.1 以界面方式操作視圖
10.2.2 使用CREATE VIEW語句創建視圖
10.2.3 使用ALTER VIEW語句修改視圖
10.2.4 使用DROP VIEW語句刪除視圖
10.2.5 使用存儲過程sp_rename修改視圖
10.3 通過視圖操作數據
10.3.1 從視圖中瀏覽數據
10.3.2 向視圖中添加數據
10.3.3 修改視圖中的數據
10.3.4 刪除視圖中的數據
10.4 小結
10.5 實踐與練習
第3篇 高 級 應 用
第11章 存儲過程
視頻講解:18分鐘
11.1 存儲過程概述
11.1.1 存儲過程的概念
11.1.2 存儲過程的優點
11.2 創建存儲過程
11.2.1 使用向導創建存儲過程
11.2.2 使用CREATE PROC語句創建存儲過程
11.3 管理存儲過程
11.3.1 執行存儲過程
11.3.2 查看存儲過程
11.3.3 修改存儲過程
11.3.4 重命名存儲過程
11.3.5 刪除存儲過程
11.4 小結
11.5 實踐與練習
第12章 觸發器
視頻講解:16分鐘
12.1 觸發器概述
12.1.1 觸發器的概念
12.1.2 觸發器的優點
12.1.3 觸發器的種類
12.2 創建觸發器
12.2.1 創建DML觸發器
12.2.2 創建DDL觸發器
12.2.3 創建登錄觸發器
12.3 管理觸發器
12.3.1 查看觸發器
12.3.2 修改觸發器
12.3.3 重命名觸發器
12.3.4 禁用和啟用觸發器
12.3.5 刪除觸發器
12.4 小結
12.5 實踐與練習
第13章 游標的使用
視頻講解:13分鐘
13.1 游標的概述
13.1.1 游標的實現
13.1.2 游標的類型
13.2 游標的基本操作
13.2.1 聲明游標
13.2.2 打開游標
13.2.3 讀取游標中的數據
13.2.4 關閉游標
13.2.5 釋放游標
13.3 使用系統過程查看游標
13.3.1 sp_cursor_list
13.3.2 sp_describe_cursor
13.4 小結
13.5 實踐與練習
第14章 索引與數據完整性
視頻講解:56分鐘
14.1 索引的概念
14.2 索引的優缺點
14.2.1 索引的優點
14.2.2 索引的缺點
14.3 索引的分類
14.3.1 聚集索引
14.3.2 非聚集索引
14.4 索引的操作
14.4.1 索引的創建
14.4.2 查看索引信息
14.4.3 索引的修改
14.4.4 索引的刪除
14.4.5 設置索引的選項
14.5 索引的分析與維護
14.5.1 索引的分析
14.5.2 索引的維護
14.6 全文索引
14.6.1 使用企業管理器啟用全文索引
14.6.2 使用Transact-SQL語句啟用全文索引
14.6.3 使用Transact-SQL語句刪除全文索引
14.6.4 全文目錄
14.6.5 全文目錄的維護
14.7 數據完整性
14.7.1 域完整性
14.7.2 實體完整性
14.7.3 引用完整性
14.7.4 用戶定義完整性
14.8 小結
14.9 實踐與練習
第15章 SQL中的事務
視頻講解:28分鐘
15.1 事務的概念
15.2 顯式事務與隱式事務
15.2.1 顯式事務
15.2.2 隱式事務
15.2.3 API中控制隱式事務
15.2.4 事務的COMMIT和ROLLBACK
15.3 使用事務
15.3.1 開始事務
15.3.2 結束事務
15.3.3 回滾事務
15.3.4 事務的工作機制
15.3.5 自動提交事務
15.3.6 事務的并發問題
15.3.7 事務的隔離級別
15.4 鎖
15.4.1 SQL Server鎖機制
15.4.2 鎖模式
15.4.3 鎖的粒度
15.4.4 查看鎖
15.4.5 死鎖
15.5 分布式事務處理
15.5.1 分布式事務簡介
15.5.2 創建分布式事務
15.5.3 分布式處理協調器
15.6 小結
15.7 實踐與練習
第16章 維護SQL Server 2012
視頻講解:30分鐘
16.1 脫機與聯機數據庫
16.1.1 脫機數據庫
16.1.2 聯機數據庫
16.2 分離和附加數據庫
16.2.1 分離數據庫
16.2.2 附加數據庫
16.3 導入導出數據
16.3.1 導入SQL Server數據表
16.3.2 導入其他數據源的數據
16.3.3 導出SQL Server數據表
16.4 備份和恢復數據庫
16.4.1 備份類型
16.4.2 恢復模式
16.4.3 備份數據庫
16.4.4 恢復數據庫
16.5 收縮數據庫和文件
16.5.1 自動收縮數據庫
16.5.2 手動收縮數據庫
16.6 生成與執行SQL腳本
16.6.1 將數據庫生成SQL腳本
16.6.2 將數據表生成SQL腳本
16.6.3 執行SQL腳本
16.7 小結
16.8 實踐與練習
1.靜態游標
靜態游標的完整結果集在游標打開時建立在tempdb中。靜態游標總是按照游標打開時的原樣顯示結果集。靜態游標在滾動期間很少或根本檢測不到變化,雖然它在tempdb中存儲了整個游標,但消耗的資源很少。盡管動態游標使用tempdb的程度最低,在滾動期間它能夠檢測到所有變化,但消耗的資源也更多。鍵集驅動游標介于二者之間,它能檢測到大部分的變化,但比動態游標消耗更少的資源。
2.動態游標
動態游標與靜態游標相對。當滾動游標時,動態游標反映結果集中所做的所有更改。結果集中的行數據值、順序和成員在每次提取時都會改變。所有用戶做的全部UPDATE、INSERT和DELETE語句均通過游標可見。
3.只進游標
只進游標不支持滾動,它只支持游標從頭到尾順序提取。只有從數據庫中提取出來后才能進行檢索。對所有由當前用戶發出或由其他用戶提交、并影響結果集中的行的INSERT、UPDATE和DELETE語句,其效果在這些行從游標中提取時是可見的。
4.鍵集驅動游標
打開游標時,鍵集驅動游標中的成員和行順序是固定的。鍵集驅動游標由一套被稱為鍵集的唯一標識符(鍵)控制。鍵由以唯一方式在結果集中標識行的列構成。鍵集是游標打開時來自所有適合SELECT語句的行中的一系列鍵值。鍵集驅動游標的鍵集在游標打開時建立在tempdb中。對非鍵集列中的數據值所做的更改(由游標所有者更改或其他用戶提交)在用戶滾動游標時是可見的。在游標外對數據庫所做的插入在游標內是不可見的,除非關閉并重新打開游標。
13.2游標的基本操作
視頻講解:光盤\TM\lx\13\游標的基本操作.mp4
游標的基本操作包括聲明游標、打開游標、讀取游標中的數據、關閉游標和釋放游標。本節就詳細介紹如何操作游標。
13.2.1聲明游標
聲明游標可以使用DECLARECURSOR語句。此語句有兩種語法聲明格式,分別為ISO標準語法和Transact-SQL擴展的語法,下面將分別介紹聲明游標的兩種語法格式。
1.ISO標準語法
語法如下:
DECLAREcursor_name[INSENSITIVE][SCROLL]CURSOR
FORselect_statement
FOR{READONLY|UPDATE[OFcolumn_name[,...n]]}]
參數說明如下。
DECLAREcursor_name:指定一個游標名稱,其游標名稱必須符合標識符規則。
INSENSITIVE:定義一個游標,以創建將由該游標使用的數據的臨時復本。對游標的所有請求都從tempdb中的臨時表中得到應答;因此,在對該游標進行提取操作時返回的數據中不反映對基表所做的修改,并且該游標不允許修改。使用SQL-92語法時,如果省略INSENSITIVE,(任何用戶)對基表提交的刪除和更新都反映在后面的提取中。
SCROLL:指定所有的提取選項(FIRST、LAST、PRIOR、NEXT、RELATIVE、ABSOLUTE)均可用。
FIRST:取第一行數據。
LAST:取最后一行數據。
PRIOR:取前一行數據。
NEXT:取后一行數據。
RELATIVE:按相對位置取數據。
ABSOLUTE:按絕對位置取數據。
如果未指定SCROLL,則NEXT是唯一支持的提取選項。
select_statement:定義游標結果集的標準SELECT語句。在游標聲明的select_statement內不允許使用關鍵字COMPUTE、COMPUTEBY、FORBROWSE和INTO。
READONLY:表明不允許游標內的數據被更新,盡管在默認狀態下游標是允許更新的。在UPDATE或DELETE語句的WHERECURRENTOF子句中不允許引用游標。
UPDATE[OFcolumn_name[,...n]]:定義游標內可更新的列。如果指定OFcolumn_name[,...n]參數,則只允許修改所列出的列。如果在UPDATE中未指定列的列表,則可以更新所有列。