《SQL Server 2005實用教程(第3版)》是根據(jù)教育部提出的高等學(xué)校計算機基礎(chǔ)教學(xué)“技能—能力—思維”三個層次要求組織編寫的。本書主要講述大型數(shù)據(jù)庫管理系統(tǒng)SQL Server 2005的功能、操作和實用開發(fā)技術(shù)。
《SQL Server 2005實用教程(第3版)》以SQL Server 2005為平臺,用一個實例貫穿全書來詳細(xì)講解SQL Server 2005的安裝和配置、數(shù)據(jù)庫的創(chuàng)建與管理、表、T-SQL語言、視圖、索引、存儲過程、數(shù)據(jù)庫的備份恢復(fù)與導(dǎo)入導(dǎo)出、SQL Server的安全管理。除最后一章外,每章后均配有實訓(xùn)內(nèi)容,以強化學(xué)生的實踐能力。第13章介紹SQL Server項目開發(fā),將全書所學(xué)內(nèi)容與.NET編程語言相結(jié)合,進行了系統(tǒng)化、整體化的提升,并利用Visual C#與SQL Server 2005開發(fā)設(shè)計了學(xué)生選課系統(tǒng),供學(xué)生學(xué)習(xí)和參考。
《SQL Server 2005實用教程(第3版)》具有由淺入深、理論聯(lián)系實際的特點,在保證教材系統(tǒng)性和科學(xué)性的同時,注重實踐性和操作性。
《SQL Server 2005實用教程(第3版)》既可以作為高職高專院校計算機及相關(guān)專業(yè)的教材和教學(xué)參考書,也可以作為數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)人員的參考書。
《SQL Server 2005實用教程(第3版)》在前兩版的基礎(chǔ)上進行了修訂,調(diào)整了部分內(nèi)容,增加了實例和習(xí)題內(nèi)容,并結(jié)合當(dāng)今主流系統(tǒng)開發(fā)的需求,將第13章“SQL Server開發(fā)與編程”進行了全面的修改,采用Visual C#與SQL Server 2005相結(jié)合的方式進行開發(fā)設(shè)計,以求能更好地突出教學(xué)內(nèi)容的重點和難點,增強本書的實用性。
《SQL Server 2005實用教程(第3版)》共有13章。第1章主要介紹數(shù)據(jù)庫相關(guān)知識;第2章介紹SQL Server 2005的安裝和配置;第3、4章介紹SQL Server數(shù)據(jù)庫和表;第5章介紹數(shù)據(jù)庫的數(shù)據(jù)完整性;第6章介紹數(shù)據(jù)查詢;第7、8章介紹視圖及索引的應(yīng)用;第9章介紹T-SQL語言;第10章介紹存儲過程和觸發(fā)器;第11章介紹備份恢復(fù)與導(dǎo)入導(dǎo)出;第12章介紹SQL Server的安全管理;第13章介紹SQL Server項目開發(fā)。除最后一章外,每一章都配有實訓(xùn)內(nèi)容,所有實訓(xùn)內(nèi)容均圍繞一個大的實例展開,具有系統(tǒng)性和整體性的特點,在項目開發(fā)中采用了Visual C#與SQL Server 2005相結(jié)合的開發(fā)技術(shù),有助于學(xué)生對新知識、新技術(shù)的了解和學(xué)習(xí)。
《SQL Server 2005實用教程(第3版)》概念清晰、敘述準(zhǔn)確、重點突出,理論與實踐緊密結(jié)合,注重操作技能的培養(yǎng),圖文并茂,提供了豐富的實例,有助于讀者對所學(xué)內(nèi)容的掌握,便于自學(xué)。
前 言
數(shù)據(jù)庫技術(shù)是計算機技術(shù)領(lǐng)域中發(fā)展最快的技術(shù)之一,也是應(yīng)用最為廣泛的技術(shù)之一,它已經(jīng)成為計算機信息系統(tǒng)的核心技術(shù)和重要基礎(chǔ)。
2005年11月,微軟公司發(fā)布了其數(shù)據(jù)庫軟件的又一個升級版本SQL Server 2005。從SQL Server 2000到SQL Server 2005,不僅僅是數(shù)據(jù)庫系統(tǒng)具有更高的性能、更強的處理能力,新版本的系統(tǒng)還帶來了許多新的、在舊版本中從未出現(xiàn)的特性。而這些新特性也都是和現(xiàn)代數(shù)據(jù)庫的發(fā)展方向相一致的。例如,對XML的支持、在SQL語言中嵌入高級語言支持等。在企業(yè)環(huán)境中,更注重安全性、高可用性、集成的管理工具等。目前SQL Server雖然已經(jīng)出現(xiàn)了許多更新版本,如SQL Server 2012、SQL Server 2016等,但是仍有許多院校及企業(yè)在使用SQL Server 2005。在眾多的數(shù)據(jù)庫系統(tǒng)中,SQL Server以其滿足對大型數(shù)據(jù)庫技術(shù)的要求和易于實現(xiàn)、容易理解和掌握等特點,被許多院校列為必修課程。
本書第1版和第2版分別于2008年9月、2011年3月由清華大學(xué)出版社出版發(fā)行,受到廣大讀者的歡迎。在使用過程中,許多專家和師生給予了大力的支持并提出了一些很好的意見和建議,因此,我們對《SQL Server 2005實用教程》在前兩版的基礎(chǔ)上進行了修訂,調(diào)整了部分內(nèi)容,增加了實例和習(xí)題內(nèi)容,并結(jié)合當(dāng)今主流系統(tǒng)開發(fā)的需求,將第13章“SQL Server開發(fā)與編程”進行了全面的修改,采用Visual C#與SQL Server 2005相結(jié)合的方式進行開發(fā)設(shè)計,以求能更好地突出教學(xué)內(nèi)容的重點和難點,增強本書的實用性。
全書共有13章。第1章主要介紹數(shù)據(jù)庫相關(guān)知識;第2章介紹SQL Server 2005的安裝和配置;第3、4章介紹SQL Server數(shù)據(jù)庫和表;第5章介紹數(shù)據(jù)庫的數(shù)據(jù)完整性;第6章介紹數(shù)據(jù)查詢;第7、8章介紹視圖及索引的應(yīng)用;第9章介紹T-SQL語言;第10章介紹存儲過程和觸發(fā)器;第11章介紹備份恢復(fù)與導(dǎo)入導(dǎo)出;第12章介紹SQL Server的安全管理;第13章介紹SQL Server項目開發(fā)。除最后一章外,每一章都配有實訓(xùn)內(nèi)容,所有實訓(xùn)內(nèi)容均圍繞一個大的實例展開,具有系統(tǒng)性和整體性的特點,在項目開發(fā)中采用了Visual C#與SQL Server 2005相結(jié)合的開發(fā)技術(shù),有助于學(xué)生對新知識、新技術(shù)的了解和學(xué)習(xí)。
本書概念清晰、敘述準(zhǔn)確、重點突出,理論與實踐緊密結(jié)合,注重操作技能的培養(yǎng),圖文并茂,提供了豐富的實例,有助于讀者對所學(xué)內(nèi)容的掌握,便于自學(xué)。
本書由李巖、韓勁松任主編,張瑞雪、李康樂任副主編。參加編寫的人員還有王旭、張玉芬、徐宏偉、賀曉光、于洪鵬。其中,第1、2章由王旭編寫;第3、4由韓勁松編寫;第5、6、7章由張瑞雪編寫;第8、9由李康樂編寫;第10、11章由李巖編寫;第12、13章由張玉芬編寫,全書由李巖統(tǒng)稿。書中代碼及文字校對等工作由于洪鵬、徐宏偉、賀曉光參與完成,在此衷心地向他們表示感謝。
由于編者水平有限,時間倉促,書中難免存在缺點和不足,衷心希望廣大讀者批評指正。
編 者
收起全部↑
目 錄
第1章 數(shù)據(jù)庫概述 1
1.1 數(shù)據(jù)庫的基本概念及數(shù)據(jù)庫系統(tǒng) 1
1.1.1 數(shù)據(jù)庫的基本概念 1
1.1.2 數(shù)據(jù)庫系統(tǒng)的組成 2
1.1.3 數(shù)據(jù)庫系統(tǒng)的特點 3
1.2 數(shù)據(jù)模型概述 3
1.2.1 信息世界的數(shù)據(jù)描述 4
1.2.2 數(shù)據(jù)模型 4
1.3 關(guān)系數(shù)據(jù)庫的基本原理 9
1.3.1 關(guān)系模型 9
1.3.2 關(guān)系運算 11
1.3.3 關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言 14
1.3.4 關(guān)系模型的規(guī)范化 15
本章實訓(xùn) 18
本章小結(jié) 19
習(xí)題 20
第2章 SQL Server 2005概述 22
2.1 SQL Server 2005簡介 22
2.1.1 SQL Server 2005的發(fā)展
及特點 22
2.1.2 SQL Server 2005的環(huán)境 23
2.2 SQL Server的結(jié)構(gòu) 25
2.2.1 SQL Server的系統(tǒng)結(jié)構(gòu) 25
2.2.2 SQL Server 2005的體系
結(jié)構(gòu) 25
2.3 SQL Server的安裝和配置 26
2.3.1 SQL Server的應(yīng)用環(huán)境設(shè)計 26
2.3.2 安裝預(yù)備軟件 27
2.3.3 安裝SQL Server部件 27
2.4 SQL Server 2005的主要管理工具 32
2.4.1 SQL Server管理控制臺 32
2.4.2 商業(yè)智能開發(fā)工具 33
2.4.3 SQL Server分析器 34
2.4.4 SQL Server配置管理器 35
2.4.5 數(shù)據(jù)庫引擎優(yōu)化顧問 35
2.5 配置SQL Server 2005 36
2.5.1 啟動、停止、暫停和重新啟動
SQL Server服務(wù) 36
2.5.2 配置服務(wù)的啟動模式 37
2.5.3 注冊服務(wù)器 38
2.5.4 創(chuàng)建服務(wù)器組 40
本章實訓(xùn) 41
本章小結(jié) 42
習(xí)題 42
第3章 SQL Server數(shù)據(jù)庫 43
3.1 SQL Server數(shù)據(jù)庫概述 43
3.1.1 數(shù)據(jù)庫文件 43
3.1.2 數(shù)據(jù)庫文件組 44
3.2 系統(tǒng)數(shù)據(jù)庫概述 44
3.2.1 數(shù)據(jù)庫對象 45
3.2.2 系統(tǒng)數(shù)據(jù)庫 45
3.3 創(chuàng)建數(shù)據(jù)庫 47
3.3.1 用SQL Server Management
Studio創(chuàng)建數(shù)據(jù)庫 47
3.3.2 用SQL 命令創(chuàng)建數(shù)據(jù)庫 49
3.3.3 事務(wù)日志 52
3.4 管理和維護數(shù)據(jù)庫 53
3.4.1 打開數(shù)據(jù)庫 53
3.4.2 查看數(shù)據(jù)庫信息 53
3.4.3 用SQL Server Management
Studio修改數(shù)據(jù)庫配置 54
3.4.4 用T-SQL命令修改數(shù)據(jù)庫
配置 54
3.4.5 刪除數(shù)據(jù)庫 55
本章實訓(xùn) 56
本章小結(jié) 59
習(xí)題 60
第4章 數(shù)據(jù)庫中的表 62
4.1 創(chuàng)建表 62
4.1.1 數(shù)據(jù)類型 62
4.1.2 使用SQL Server Management
Studio創(chuàng)建表 64
4.1.3 使用SQL命令方式創(chuàng)建表 65
4.2 表的管理和維護 66
4.2.1 查看表的屬性 66
4.2.2 修改表結(jié)構(gòu) 68
4.2.3 刪除數(shù)據(jù)表 70
4.3 表數(shù)據(jù)的操作 71
4.3.1 圖形界面方式操作表數(shù)據(jù) 71
4.3.2 使用INSERT命令向表中添加
數(shù)據(jù) 72
4.3.3 使用UPDATE命令修改表中
的數(shù)據(jù) 73
4.3.4 使用DELETE或TRANCATE
TABLE命令刪除表中的數(shù)據(jù) 73
4.3.5 常用系統(tǒng)數(shù)據(jù)表 74
本章實訓(xùn) 75
本章小結(jié) 78
習(xí)題 79
第5章 數(shù)據(jù)完整性 81
5.1 數(shù)據(jù)完整性的基本概念 81
5.2 約束 82
5.2.1 主鍵約束 82
5.2.2 唯一鍵約束 84
5.2.3 檢查約束 86
5.2.4 默認(rèn)值約束 89
5.2.5 外鍵約束 91
5.3 默認(rèn)值 93
5.3.1 創(chuàng)建默認(rèn)值 93
5.3.2 綁定和解綁默認(rèn)值 93
5.3.3 刪除默認(rèn)值 94
5.4 規(guī)則 95
5.4.1 創(chuàng)建規(guī)則 95
5.4.2 綁定和解綁規(guī)則 95
5.4.3 刪除規(guī)則 96
5.5 標(biāo)識列 96
5.6 自定義數(shù)據(jù)類型 97
5.6.1 創(chuàng)建自定義數(shù)據(jù)類型 97
5.6.2 刪除用戶自定義數(shù)據(jù)類型 99
本章實訓(xùn) 99
本章小結(jié) 101
習(xí)題 102
第6章 數(shù)據(jù)查詢 104
6.1 簡單SELECT語句 105
6.1.1 SELECT的語法格式 105
6.1.2 基本的SELECT語句 106
6.1.3 INTO子句 109
6.1.4 WHERE子句 111
6.1.5 ORDER BY子句 114
6.2 SELECT語句的統(tǒng)計功能 115
6.2.1 集合函數(shù) 115
6.2.2 GROUP BY子句 116
6.2.3 COMPUTE子句 117
6.3 SELECT語句中的多表連接 119
6.3.1 交叉連接 119
6.3.2 內(nèi)連接 120
6.3.3 外連接 121
6.3.4 自連接 123
6.3.5 合并查詢 123
6.4 子查詢 124
6.4.1 嵌套子查詢 124
6.4.2 相關(guān)子查詢 126
6.4.3 使用子查詢向表中添加多條
記錄 128
本章實訓(xùn) 128
本章小結(jié) 132
習(xí)題 133
第7章 視圖及其應(yīng)用 135
7.1 視圖概述 135
7.1.1 視圖的基本概念 135
7.1.2 視圖的優(yōu)點及注意事項 135
7.2 視圖的創(chuàng)建和查詢 136
7.2.1 在SQL Server Management
Studio中創(chuàng)建視圖 136
7.2.2 使用CREATE VIEW命令創(chuàng)建
視圖 138
7.2.3 使用視圖查詢數(shù)據(jù) 138
7.3 視圖的管理和維護 139
7.3.1 查看視圖的定義信息 139
7.3.2 查看視圖與其他對象的依賴
關(guān)系 140
7.3.3 視圖的修改 141
7.3.4 視圖的刪除 142
7.4 通過視圖修改表數(shù)據(jù) 142
本章實訓(xùn) 143
本章小結(jié) 145
習(xí)題 146
第8章 索引及其應(yīng)用 147
8.1 索引概述 147
8.1.1 索引的作用 147
8.1.2 索引的分類 148
8.2 創(chuàng)建索引 149
8.2.1 系統(tǒng)自動創(chuàng)建索引 149
8.2.2 在SQL Server Management
Studio中創(chuàng)建索引 150
8.2.3 使用CREATE INDEX語句創(chuàng)建索引 153
8.3 管理和維護索引 154
8.3.1 查看和維護索引信息 155
8.3.2 刪除索引 155
8.3.3 索引的分析與維護 156
本章實訓(xùn) 159
本章小結(jié) 161
習(xí)題 161
第9章 T-SQL語言 163
9.1 批處理、腳本和注釋 163
9.1.1 批處理 163
9.1.2 腳本 164
9.1.3 注釋 165
9.2 常量、變量和表達式 165
9.2.1 常量 165
9.2.2 變量 167
9.2.3 運算符與表達式 169
9.3 流程控制語句 172
9.3.1 BEGIN…END語句塊 172
9.3.2 IF…ELSE語句 172
9.3.3 CASE表達式 173
9.3.4 無條件轉(zhuǎn)移語句GOTO 176
9.3.5 WAITFOR語句 176
9.3.6 WHILE語句 176
9.3.7 RETURN語句 177
9.4 系統(tǒng)內(nèi)置函數(shù) 178
9.4.1 行集函數(shù) 178
9.4.2 聚合函數(shù) 179
9.4.3 標(biāo)量函數(shù) 180
9.5 用戶自定義函數(shù) 190
9.5.1 用戶自定義函數(shù)的創(chuàng)建
與調(diào)用 190
9.5.2 修改與刪除用戶自定義
函數(shù) 193
9.6 游標(biāo)及其使用 193
9.6.1 聲明游標(biāo) 194
9.6.2 打開游標(biāo) 194
9.6.3 數(shù)據(jù)處理 195
9.6.4 關(guān)閉游標(biāo) 199
9.6.5 釋放游標(biāo) 199
本章實訓(xùn) 199
本章小結(jié) 202
第3章 SQL Server數(shù)據(jù)庫
SQL Server 2005數(shù)據(jù)庫是所涉及的對象以及數(shù)據(jù)的集合。它不僅反映數(shù)據(jù)本身的內(nèi)容,而且反映對象以及數(shù)據(jù)之間的聯(lián)系。對數(shù)據(jù)庫的操作是開發(fā)人員的一項重要工作。
本章主要介紹SQL Server 2005數(shù)據(jù)庫的基本概念,以及創(chuàng)建、刪除、修改數(shù)據(jù)庫等基本操作。
通過學(xué)習(xí)本章,讀者應(yīng)掌握以下內(nèi)容:
* 數(shù)據(jù)庫及其對象
* 文件和文件組及事務(wù)日志
* 創(chuàng)建數(shù)據(jù)庫系統(tǒng)的幾個階段和原則
* 創(chuàng)建和管理數(shù)據(jù)庫的方法
3.1 SQL Server數(shù)據(jù)庫概述
SQL Server 2005將數(shù)據(jù)庫映射為一組操作系統(tǒng)文件。數(shù)據(jù)庫中的數(shù)據(jù)和日志信息分別保存在不同的文件中,而且各文件僅在一個數(shù)據(jù)庫中使用。文件組是命名的文件集合,用于幫助數(shù)據(jù)布局和管理任務(wù),如備份和還原操作。
3.1.1 數(shù)據(jù)庫文件
1.?dāng)?shù)據(jù)庫文件分類
SQL Server 2005數(shù)據(jù)庫具有以下3種類型的文件。
(1) 主數(shù)據(jù)文件。是數(shù)據(jù)庫的起點,指向數(shù)據(jù)庫中的其他文件。每個數(shù)據(jù)庫都有且僅有一個主數(shù)據(jù)文件。主數(shù)據(jù)文件的推薦文件擴展名是.mdf。
(2) 次要數(shù)據(jù)文件。除主數(shù)據(jù)文件以外的所有其他數(shù)據(jù)文件都是次要數(shù)據(jù)文件。某些數(shù)據(jù)庫可能不包含任何次要數(shù)據(jù)文件,而有些數(shù)據(jù)庫則含有多個次要數(shù)據(jù)文件。次要數(shù)據(jù)文件的推薦文件擴展名是.ndf。
(3) 日志文件。包含用于恢復(fù)數(shù)據(jù)庫的所有日志信息。每個數(shù)據(jù)庫必須至少有一個日志文件,當(dāng)然也可以有多個。日志文件的推薦文件擴展名是.ldf。
SQL Server 2005不強制使用.mdf、.ndf和.ldf文件擴展名,但使用它們有助于標(biāo)識文件的各種類型和用途。
在SQL Server 2005中,數(shù)據(jù)庫中所有文件的位置都記錄在數(shù)據(jù)庫的主數(shù)據(jù)文件和master數(shù)據(jù)庫中。大多數(shù)情況下,數(shù)據(jù)庫引擎使用master數(shù)據(jù)庫中的文件位置信息。
2.邏輯文件名和物理文件名
SQL Server 2005?的文件擁有兩個名稱,即邏輯文件名和物理文件名。當(dāng)使用?T-SQL命令語句訪問某個文件時,必須使用該文件的邏輯名。物理文件名是文件實際存儲在磁盤上的文件名,包含完整的磁盤目錄路徑。
(1) 邏輯文件名(logical_file_name):它是所有T-SQL語句引用物理文件時使用的名稱。邏輯文件名必須符合SQL Server標(biāo)識符規(guī)則,而且在數(shù)據(jù)庫中的邏輯文件名必須是唯一的。
(2) 物理文件名(os_file_name):它是包括目錄路徑在內(nèi)的文件全名,必須符合操作系統(tǒng)的文件命名規(guī)則。
3.文件大小
SQL Server 2005的文件大小有初始大小size、最大值maxsize和增量filegrowth三個參數(shù)。文件的大小可以從最初指定的初始大小size開始按增量filegrowth來增長,當(dāng)文件增量超過最大值maxsize時將出錯,文件無法正常建立,也就是數(shù)據(jù)庫無法創(chuàng)建。
如果沒有指定最大值,文件可以一直增長到用完磁盤上的所有可用空間。如果SQL Server作為數(shù)據(jù)庫嵌入某個應(yīng)用程序,而該應(yīng)用程序的用戶無法迅速與系統(tǒng)管理員聯(lián)系,則不應(yīng)指定文件的最大值,用戶可以使文件根據(jù)需要自動增長,以減輕監(jiān)視數(shù)據(jù)庫中的可用空間和手動分配額外空間的管理負(fù)擔(dān)。