本書以Microsoft SQL Server 2008中文版為平臺,系統地介紹SQL Server 2008基礎、實驗和SQL Server 2008綜合應用等內容。SQL Server 2008基礎部分在介紹數據庫的基礎知識后,系統介紹數據庫創建、表的創建和操作、數據庫的查詢和視圖、T-SQL語言、索引與數據完整性、存儲過程和觸發器、備份與恢復、系統安全管理、SQL Server 2008與XML等。實驗部分訓練SQL Server基本操作和基本命令,其數據庫自成系統。SQL Server 2008綜合應用部分通過創建SQL Server 2008實習數據庫及其數據庫常用對象,將數據庫、表、視圖、觸發器、完整性、存儲過程等進行綜合應用;之后,通過學生成績管理系統,介紹目前最流行的幾種開發平臺操作SQL Server 2008數據庫,包括PHP/SQL Server 2008學生成績管理系統、JavaEE/SQL Server 2008 學生成績管理系統、ASP.NET/SQL Server 2008學生成績管理系統、VC 6.0/SQL Server 2008學生成績管理系統、VB 6.0/SQL Server 2008 學生成績管理系統。
本書免費提供教學課件和配套的客戶端/SQL Server 2008應用系統數據庫和所有源程序文件。
目 錄
第1部分 SQL Server 2008基礎
第1章 數據庫的基礎知識\\t(1)
1.1 數據庫基本概念\\t(1)
1.1.1 數據庫與數據庫管理系統\\t(1)
1.1.2 數據模型\\t(2)
1.1.3 關系型數據庫語言\\t(4)
1.2 數據庫設計\\t(4)
1.2.1 概念結構設計\\t(4)
1.2.2 邏輯結構設計\\t(5)
1.2.3 數據庫物理設計\\t(7)
1.3 數據庫應用系統\\t(7)
1.3.1 數據庫的連接方式\\t(7)
1.3.2 客戶/服務器(C/S)模式
應用系統\\t(9)
1.3.3 三層客戶/服務器(B/S)
模式應用系統\\t(10)
1.4 SQL Server 2008環境\\t(11)
1.4.1 SQL Server 2008概述\\t(11)
1.4.2 SQL Server 2008的安裝\\t(11)
1.4.3 SQL Server 2008服務器
組件\\t(15)
1.4.4 SQL Server 2008管理和
開發工具\\t(16)
習題1\\t(20)
第2章 數據庫創建\\t(21)
2.1 SQL Server數據庫基本概念\\t(21)
2.1.1 邏輯數據庫\\t(21)
2.1.2 物理數據庫\\t(23)
2.1.3 系統數據庫和用戶數
據庫\\t(24)
2.2 界面方式創建數據庫\\t(24)
2.2.1 數據庫的創建\\t(25)
2.2.2 數據庫的修改和刪除\\t(26)
2.3 命令方式創建數據庫\\t(29)
2.3.1 創建數據庫\\t(30)
2.3.2 修改數據庫\\t(35)
2.3.3 刪除數據庫\\t(38)
2.3.4 數據庫快照\\t(39)
習題2\\t(40)
第3章 表的創建和操作\\t(41)
3.1 表結構和數據類型\\t(41)
3.1.1 表和表結構\\t(41)
3.1.2 數據類型\\t(42)
3.1.3 表結構設計\\t(47)
3.2 界面方式操作表\\t(49)
3.2.1 創建表\\t(49)
3.2.2 修改表結構\\t(51)
3.2.3 刪除表\\t(54)
3.3 命令方式操作表\\t(54)
3.3.1 創建表\\t(54)
3.3.2 創建分區表\\t(57)
3.3.3 修改表結構\\t(61)
3.3.4 刪除表\\t(63)
3.4 界面方式操作表數據\\t(63)
3.4.1 插入記錄\\t(63)
3.4.2 刪除記錄\\t(64)
3.4.3 修改記錄\\t(65)
3.5 命令方式操作表數據\\t(65)
3.5.1 插入記錄\\t(65)
3.5.2 刪除記錄\\t(68)
3.5.3 修改記錄\\t(70)
3.5.4 更新記錄\\t(72)
習題3\\t(74)
第4章 數據庫的查詢和視圖\\t(75)
4.1 關系運算\\t(75)
4.2 數據庫的查詢\\t(77)
4.2.1 選擇查詢結果輸出列\\t(77)
4.2.2 選擇查詢條件:WHERE
子句\\t(83)
4.2.3 指定查詢對象:FROM
子句\\t(93)
4.2.4 連接\\t(97)
4.2.5 指定查詢結果分組條件:
GROUP BY子句\\t(100)
4.2.6 指定查詢結果分組統計
條件:HAVING子句\\t(105)
4.2.7 指定查詢結果排序順序:
ORDER BY子句\\t(106)
4.2.8 SELECT語句的其他
語法\\t(107)
4.3 視圖\\t(110)
4.3.1 視圖概念\\t(110)
4.3.2 創建視圖\\t(111)
4.3.3 查詢視圖\\t(114)
4.3.4 更新視圖\\t(115)
4.3.5 修改視圖的定義\\t(117)
4.3.6 刪除視圖\\t(118)
4.4 游標\\t(118)
4.4.1 游標概念\\t(118)
4.4.2 聲明游標\\t(119)
4.4.3 打開游標\\t(121)
4.4.4 讀取數據\\t(122)
4.4.5 關閉游標\\t(124)
4.4.6 刪除游標\\t(124)
習題4\\t(124)
第5章 T-SQL語言\\t(125)
5.1 SQL語言與T-SQL語言\\t(125)
5.2 常量、變量與數據類型\\t(126)
5.2.1 常量\\t(126)
5.2.2 數據類型\\t(128)
5.2.3 變量\\t(131)
5.3 運算符與表達式\\t(135)
5.4 流程控制語句\\t(140)
5.4.1 BEGIN…END語句塊\\t(140)
5.4.2 條件語句\\t(141)
5.4.3 CASE語句\\t(142)
5.4.4 無條件轉移語句\\t(143)
5.4.5 循環語句\\t(143)
5.4.6 返回語句\\t(144)
5.4.7 等待語句\\t(145)
5.4.8 錯誤處理語句\\t(145)
5.5 系統內置函數\\t(146)
5.5.1 系統內置函數介紹\\t(146)
5.5.2 常用系統標量函數\\t(147)
5.6 用戶定義函數\\t(153)
5.6.1 用戶函數的定義與調用\\t(153)
5.6.2 用戶定義函數的刪除\\t(158)
習題5\\t(158)
第6章 索引與數據完整性\\t(159)
6.1 索引\\t(159)
6.1.1 索引的分類\\t(159)
6.1.2 索引的創建\\t(160)
6.1.3 重建索引\\t(165)
6.1.4 索引的刪除\\t(167)
6.2 數據完整性\\t(167)
6.2.1 數據完整性的分類\\t(167)
6.2.2 實體完整性的實現\\t(169)
6.2.3 域完整性的實現\\t(173)
6.2.4 參照完整性的實現\\t(178)
習題6\\t(181)
第7章 存儲過程和觸發器\\t(183)
7.1 存儲過程\\t(183)
7.1.1 存儲過程的類型\\t(183)
7.1.2 存儲過程的創建與執行\\t(184)
7.1.3 存儲過程的修改\\t(190)
7.1.4 存儲過程的刪除\\t(191)
7.1.5 界面方式操作存儲過程\\t(191)
7.2 觸發器\\t(193)
7.2.1 觸發器的類型\\t(193)
7.2.2 觸發器的創建\\t(193)
7.2.3 觸發器的修改\\t(200)
7.2.4 觸發器的刪除\\t(201)
7.2.5 界面方式操作觸發器\\t(201)
習題7\\t(202)
第8章 備份與恢復\\t(203)
8.1 備份和恢復概述\\t(203)
8.1.1 備份和恢復需求分析\\t(203)
8.1.2 數據庫備份的基本概念\\t(204)
8.1.3 數據庫恢復概念\\t(205)
8.2 備份操作和備份命令\\t(206)
8.2.1 創建備份設備\\t(206)
8.2.2 備份命令\\t(209)
8.2.3 使用“對象資源管理器”
進行備份\\t(215)
8.3 恢復操作和恢復命令\\t(217)
8.3.1 檢查點\\t(217)
8.3.2 數據庫的恢復命令\\t(218)
8.3.3 使用圖形向導方式恢復
數據庫\\t(225)
8.4 復制數據庫\\t(228)
8.5 附加數據庫\\t(230)
習題8\\t(231)
第9章 系統安全管理\\t(232)
9.1 SQL Server 2008的安全機制\\t(232)
9.1.1 SQL Server 2008的身份
驗證模式\\t(232)
9.1.2 SQL Server 2008的安全性
機制\\t(233)
9.2 建立和管理用戶賬戶\\t(234)
9.2.1 界面方式管理用戶賬戶\\t(234)
9.2.2 命令方式管理用戶賬戶\\t(237)
9.3 角色管理\\t(240)
9.3.1 固定服務器角色\\t(240)
9.3.2 固定數據庫角色\\t(242)
9.3.3 自定義數據庫角色\\t(244)
9.3.4 應用程序角色\\t(247)
9.4 數據庫權限的管理\\t(249)
9.4.1 授予權限\\t(249)
9.4.2 拒絕權限\\t(253)
9.4.3 撤銷權限\\t(253)
9.5 數據庫架構的定義和使用\\t(254)
9.5.1 界面方式創建架構\\t(255)
9.5.2 命令方式創建架構\\t(257)
習題9\\t(258)
第10章 SQL Server 2008與XML\\t(260)
10.1 XML概述\\t(260)
10.1.1 XML簡介\\t(260)
10.1.2 XML基本語法\\t(261)
10.2 XML在SQL Server 2008中
的應用\\t(262)
10.2.1 XML數據類型\\t(262)
10.2.2 在SQL Server 2008中
導入XML數據\\t(263)
10.2.3 XQuery的基本用法\\t(265)
10.2.4 FOR XML子句的使用\\t(272)
習題10\\t(278)
第11章 其他概念\\t(279)
11.1 事務\\t(279)
11.1.1 事務與ACID屬性\\t(279)
11.1.2 多用戶使用問題\\t(280)
11.1.3 事務處理\\t(281)
11.1.4 事務隔離級\\t(283)
11.2 鎖定\\t(285)
11.2.1 鎖定粒度\\t(285)
11.2.2 鎖定模式\\t(285)
11.3 SQL Server 2008自動化管理\\t(286)
11.3.1 SQL Server代理\\t(287)
11.3.2 操作員\\t(288)
11.3.3 作業\\t(289)
11.3.4 警報\\t(292)
11.3.5 數據庫郵件\\t(295)
11.3.6 維護計劃向導\\t(299)
11.4 SQL Server 2008服務\\t(302)
11.4.1 集成服務\\t(303)
11.4.2 報表服務\\t(304)
11.4.3 分析服務\\t(306)
習題11\\t(306)
第2部分 實驗
實驗1 SQL Server 2008環境\\t(307)
實驗2 創建數據庫和表\\t(310)
實驗3 表數據的插入、修改和刪除\\t(314)
實驗4 數據庫的查詢和視圖\\t(318)
實驗4.1 數據庫的查詢\\t(318)
實驗4.2 視圖的使用\\t(323)
實驗5 T-SQL編程\\t(326)
實驗6 索引和數據完整性的使用\\t(331)
實驗7 存儲過程和觸發器的使用\\t(335)
實驗8 備份恢復與導入導出\\t(340)
實驗8.1 數據庫的備份\\t(340)
實驗8.2 數據庫的恢復\\t(342)
實驗9 數據庫的安全性\\t(344)
實驗9.1 數據庫用戶的管理\\t(344)
實驗9.2 服務器角色的應用\\t(345)
實驗9.3 數據庫權限管理\\t(346)
實驗10 SQL Server與XML\\t(348)
第3部分 SQL Server 2008綜合應用
實習0 創建實習數據庫\\t(352)
實習0.1 創建數據庫及其對象\\t(352)
實習0.2 功能和界面\\t(354)
實習1 PHP/SQL Server 2008學生成績
管理系統\\t(357)
實習1.1 PHP開發平臺搭建\\t(357)
實習1.1.1 創建PHP環境\\t(357)
實習1.1.2 Eclipse安裝與
配置\\t(359)
實習1.2 創建PHP項目\\t(360)
實習1.2.1 PHP項目的建立\\t(360)
實習1.2.2 PHP連接SQL
Server\\t(361)
實習1.3 界面設計及系統登錄\\t(362)
實習1.3.1 主界面\\t(362)
實習1.3.2 登錄功能\\t(363)
實習1.4 學生功能\\t(366)
實習1.4.1 修改口令\\t(366)
實習1.4.2 查詢成績\\t(368)
實習1.5 教師功能\\t(369)
實習1.5.1 增減學生\\t(369)
實習1.5.2 輸入成績\\t(372)
實習2 JavaEE/SQL Server 2008學生成績
管理系統\\t(375)
實習2.1 JavaEE開發平臺搭建\\t(375)
實習2.1.1 安裝軟件\\t(375)
實習2.1.2 環境整合\\t(375)
實習2.2 創建Struts 2項目\\t(377)
實習2.2.1 加載Struts 2包\\t(378)
實習2.2.2 連接SQL Server\\t(379)
實習2.3 界面設計及系統登錄\\t(382)
實習2.3.1 主界面\\t(382)
實習2.3.2 登錄功能\\t(383)
實習2.4 學生功能\\t(388)
實習2.4.1 修改口令\\t(388)
實習2.4.2 查詢成績\\t(391)
實習2.5 教師功能\\t(394)
實習2.5.1 增減學生\\t(394)
實習2.5.2 輸入成績\\t(400)
實習3 ASP.NET/SQL Server 2008學生
成績管理系統\\t(407)
實習3.1 ADO.NET架構原理\\t(407)
實習3.2 創建ASP.NET項目\\t(408)
實習3.2.1 ASP.NET項目的
建立\\t(408)
實習3.2.2 ASP.NET連接
SQL Server\\t(409)
實習3.3 界面設計及系統登錄\\t(409)
實習3.3.1 主界面\\t(409)
實習3.3.2 登錄功能\\t(410)
實習3.4 學生功能\\t(414)
實習3.4.1 修改口令\\t(414)
實習3.4.2 查詢成績\\t(416)
實習3.5 教師功能\\t(422)
實習3.5.1 增減學生\\t(422)
實習3.5.2 輸入成績\\t(428)
實習4 VC 6.0/SQL Server 2008學生成績
管理系統\\t(433)
實習4.1 VC數據庫開發準備\\t(433)
實習4.1.1 創建ODBC數
據源\\t(433)
實習4.1.2 建立含數據庫的VC
項目\\t(434)
實習4.1.3 添加VC數據庫
控件\\t(436)
實習4.1.4 導入類型庫與編寫
連接字符串\\t(438)
實習4.2 菜單系統與登錄控制\\t(439)
實習4.2.1 設計主菜單\\t(439)
實習4.2.2 調整主窗口外觀\\t(440)
實習4.2.3 登錄功能\\t(441)
實習4.2.4 菜單功能代碼\\t(444)
實習4.3 學生功能\\t(446)
實習4.3.1 修改口令\\t(446)
實習4.3.2 查詢成績\\t(448)
實習4.4 教師功能\\t(453)
實習4.4.1 增減學生\\t(453)
實習4.4.2 輸入成績\\t(460)
實習5 VB 6.0/SQL Server 2008學生成績
管理系統\\t(465)
實習5.1 VB數據庫開發準備\\t(465)
實習5.1.1 創建ODBC數
據源\\t(465)
實習5.1.2 新建VB 6.0項目\\t(465)
實習5.1.3 連接數據庫\\t(466)
實習5.2 菜單系統與登錄控制\\t(466)
實習5.2.1 設計主菜單\\t(466)
實習5.2.2 主窗口及版權聲明\\t(467)
實習5.2.3 登錄功能\\t(468)
實習5.2.4 菜單功能代碼\\t(469)
實習5.3 學生功能\\t(470)
實習5.3.1 修改口令\\t(470)
實習5.3.2 查詢成績\\t(471)
實習5.4 教師功能\\t(473)
實習5.4.1 增減學生\\t(473)
實習5.4.2 輸入成績\\t(476)
第4部分 附錄
附錄A 學生成績(PXSCJ)數據庫表樣
本數據\\t(478)
第5部分 部分資源下載列表
(下載網址:www.hxedu.com.cn)
網絡參考文檔:SQL Server 2008綜合應用
實習N0 SQL Server 2008圖書管理系
統數據庫
實習N1 ASP.NET 3.5(C#)/SQL Server
2008圖書管理系統
實習N2 Visual C# 2008/SQL Server
2008圖書管理系統
實習N3 VC++ 6.0/SQL Server 2008圖
書管理系統
實習N4 PHP/SQL Server 2008圖書管
理系統
實習N5 Delphi 2009/SQL Server 2008
圖書管理系統
實習N6 JavaEE SQL Server 2008圖書
管理系統
網絡參考文檔:SQL Server 2005綜合應用
實習M0 SQL Server 2005學生成績數
據庫
實習M1 VB 6.0/SQL Server 2005學生
成績管理系統
實習M2 PB/SQL Server 2005學生成
績管理系統
實習M3 VC 6.0/SQL Server 2005學生
成績管理系統
實習M4 ASP.NET(C#)/SQL Server
2005學生成績管理系統
實習M5 JavaEE/SQL Server 2005學
生成績管理系統
實習M6 PHP/SQL Server 2005學生成
績管理系統
網絡參考文檔:附錄
附錄B 常用語句、全局變量和常用函數
附錄C SQL Server 2008導入/導出
Word等類型文件——采用
ASP.NET(C#)實現
附錄D CLR存儲過程和觸發器
前 言
Microsoft SQL Server是目前最流行的大中型關系型數據庫管理系統(DBMS),為了適應市場的需要,我國高校的許多專業都開設介紹SQL Server數據庫管理系統的課程。
2002年,我們結合教學和應用開發實踐,編寫了《SQL Server實用教程》,受到高校師生和廣大讀者的廣泛好評,在兩年多的時間里重印10次。
2005年,我們推出的《SQL Server實用教程(第2版)》,對SQL Server基本內容進行了優化改進,并在客戶端編程實習方面統一功能要求,又獲得了很大的成功,三年內又重印11次。
2009年,《SQL Server實用教程(第3版)》升級SQL Server到2005版,在系統介紹SQL Server 2005的同時對實習模式進行了規范化,被評為普通高等教育“十一五”國家級規劃教材。此后推出《SQL Server實用教程(第3版)(SQL Server 2008版)》。到目前為止,SQL Server實用教程(第3版)重印10次。
鑒于我國高校的實際情況,《SQL Server實用教程(第4版)》仍以當前最流行的Microsoft SQL Server 2008為平臺,結合近年來教學與應用開發的實踐,對SQL Serevr基礎部分進行了全面整合、優化和完善,更加有利理解和教學。SQL Server綜合應用部分更是進行了系統更新,以當前最流行數據庫應用開發工具為平臺,包括PHP、JavaEE、ASP.NET、Visual C++和Visual Basic等。應用系統進行了重新開發,選用的實例小而精,功能系統但不復雜,教和學將非常方便。
本書分為SQL Server 2008基礎、實驗和SQL Server 2008綜合應用等部分。
SQL Server 2008基礎部分在介紹數據庫的基礎知識后,系統介紹數據庫創建、表的創建和操作、數據庫的查詢和視圖、T-SQL語言、索引與數據完整性、存儲過程和觸發器、備份與恢復、系統安全管理、SQL Server 2008與XML等。
實驗部分訓練SQL Server基本操作和基本命令,其數據庫自成系統。
SQL Server 2008綜合應用部分通過創建SQL Server2008實習數據庫及其數據庫常用對象,將數據庫、表、視圖、觸發器、完整性、存儲過程等進行綜合應用;之后,通過學生成績管理系統,介紹目前最流行的幾種開發平臺操作SQL Server 2008數據庫,包括PHP/SQL Server 2008學生成績管理系統、JavaEE/SQL Server 2008學生成績管理系統、ASP.NET/SQL Server 2008學生成績管理系統、VC 6.0/SQL Server 2008學生成績管理系統、VB 6.0/SQL Server 2008學生成績管理系統。
本書配有教學課件和配套的客戶端/SQL Server 2008應用系統數據庫和所有源程序文件。需要者請到華信教育資源網(http://www.hxedu.com.cn)免費注冊下載。此外,還可通過網絡下載:
(1)SQL Server 2008圖書管理系統數據庫、ASP.NET 3.5(C#)/SQL Server 2008 圖書管理系統、Visual C# 2008/SQL Server 2008 圖書管理系統、VC++ 6.0/SQL Server 2008圖書管理系統、PHP/SQL Server 2008 圖書管理系統、Delphi 2009/SQL Server 2008圖書管理系統和JavaEE/SQL Server 2008 圖書管理系統。
(2) SQL Server 2005學生成績數據庫、VB 6.0/SQL Server 2005學生成績管理系統、PB/SQL Server 2005學生成績管理系統、VC 6.0/SQL Server 2005學生成績管理系統、ASP.NET(C#)/SQL Server 2005學生成績管理系統、JavaEE/SQL Server 2005學生成績管理系統、PHP/SQL Server 2005學生成績管理系統。
(3)常用語句、全局變量和常用函數、SQL Server 2008導入/導出Word等類型文件——采用ASP.NET(C#)實現、CLR存儲過程和觸發器。
本書由劉啟芬(南京師范大學)和顧韻華(南京信息工程大學)編寫,鄭阿奇(南京師范大學)統編全書。
參加本書編寫的還有梁敬東、丁有和、曹弋、徐文勝、殷紅先、張為民、姜乃松、錢曉軍、彭作民、高茜、陳冬霞、徐斌、王志瑞、孫德榮、周怡明、劉博宇、鄭進、劉毅、周何駿、陶衛冬、嚴大牛、鄧拼博、俞琰、王守芳、周怡君、吳明祥、于金彬、陳瀚、馬俊等。此外,還有許多同志對本書提供了很多幫助,在此一并表示感謝!
由于編者水平有限,書中錯誤在所難免,敬請廣大讀者批評指正。
編 者
\\t