《SQL Server 2012實用教程/普通高等教育“十一五”國家級規(guī)劃教材·計算機(jī)系列教材》是根據(jù)教育部提出的高等學(xué)校計算機(jī)基礎(chǔ)教學(xué)三層次要求組織編寫的,主要講述大型數(shù)據(jù)庫管理系統(tǒng)SQL Server 2012的功能、操作和實用開發(fā)技術(shù)。
《SQL Server 2012實用教程/普通高等教育“十一五”國家級規(guī)劃教材·計算機(jī)系列教材》以SQL Server 2012為平臺,通過一個貫穿全書的實例詳細(xì)講解了數(shù)據(jù)庫基礎(chǔ),SQL Server 2012概述,SQL Server數(shù)據(jù)庫,SQL Server數(shù)據(jù)表的管理,數(shù)據(jù)庫的查詢和視圖,索引及其應(yīng)用,事務(wù)處理與鎖,T SQL程序設(shè)計基礎(chǔ),存儲過程,數(shù)據(jù)完整性與觸發(fā)器,備份、恢復(fù)與導(dǎo)入、導(dǎo)出,SQL Server的安全管理。本書除最后一章外,每章后均配有實訓(xùn)內(nèi)容,以強(qiáng)化學(xué)生的實踐能力。在第13章介紹了SQL Server項目開發(fā),將全書所學(xué)內(nèi)容與.NET編程語言相結(jié)合,進(jìn)行了系統(tǒng)化、整體化的提升,并利用Visual C#與SQL Server 2012開發(fā)設(shè)計了學(xué)生選課系統(tǒng),供學(xué)生學(xué)習(xí)和參考。
本書具有由淺入深、理論聯(lián)系實際的特點,在保證教材系統(tǒng)性和科學(xué)性的同時注重實踐性和操作性。
本書既可作為高等學(xué)校計算機(jī)及相關(guān)專業(yè)的教材和參考書,也可作為數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)人員的參考書。
數(shù)據(jù)庫技術(shù)是計算機(jī)技術(shù)領(lǐng)域中發(fā)展最快的技術(shù)之一,也是應(yīng)用最廣泛的技術(shù)之一,它已經(jīng)成為計算機(jī)信息系統(tǒng)的核心技術(shù)和重要基礎(chǔ)。
微軟公司的SQL Server是一個功能完備的數(shù)據(jù)庫管理系統(tǒng),SQL Server作為微軟公司在Windows系列平臺上開發(fā)的數(shù)據(jù)庫,一經(jīng)推出就以其易用性得到了很多用戶的青睞,它使用TransactSQL語言在客戶機(jī)與服務(wù)器之間發(fā)送請求。SQL Server 2012是微軟公司于2011年繼SQL Server 2008之后發(fā)布的版本。從SQL Server 2008到SQL Server 2012,不僅僅使數(shù)據(jù)庫系統(tǒng)具有更高的性能、更強(qiáng)的處理能力,新版本的系統(tǒng)還帶來了許多新的、在舊版本中從未出現(xiàn)的特性。SQL Server 2012作為已經(jīng)為云技術(shù)做好準(zhǔn)備的信息平臺,能夠快速構(gòu)建相應(yīng)的快速解決方案來實現(xiàn)本地和公有云之間的數(shù)據(jù)擴(kuò)展。
目前,我國技能型人才短缺,技能型人才的培養(yǎng)核心是實踐能力,學(xué)生應(yīng)該從在校期間就開始接受實踐能力的培養(yǎng),以便在畢業(yè)后能很快適應(yīng)社會的需求。為了滿足當(dāng)前高職高專院校人才培養(yǎng)的要求和當(dāng)今社會對人才的需求,很多學(xué)校的相關(guān)專業(yè)均開設(shè)了有關(guān)數(shù)據(jù)庫技術(shù)的課程,而在眾多數(shù)據(jù)庫系統(tǒng)中,SQL Server以其兼具對大型數(shù)據(jù)庫技術(shù)的要求和易于實現(xiàn)等特點被許多院校列為必修課程。本書正是結(jié)合這一實際需要以及最新的數(shù)據(jù)庫技術(shù)知識編寫的。
本書由淺入深地介紹了SQL Server 2012的基本管理與操作方法。全書共有13章,第1章主要介紹數(shù)據(jù)庫的相關(guān)知識;第2章介紹SQL Server 2012的安裝和配置;第3章、第4章介紹SQL Server數(shù)據(jù)庫和表;第5章介紹數(shù)據(jù)庫的數(shù)據(jù)查詢;第6章介紹索引;第7章介紹事務(wù)處理與鎖;第8章介紹TSQL編程基礎(chǔ);第9章介紹存儲過程;第10章介紹數(shù)據(jù)完整性與觸發(fā)器;第11章介紹數(shù)據(jù)庫的備份、恢復(fù)與導(dǎo)入、導(dǎo)出;第12章介紹SQL Server的安全管理;第13章介紹SQL Server項目開發(fā)。本書除最后一章外,每章后都配有實訓(xùn)內(nèi)容,所有實訓(xùn)內(nèi)容均圍繞一個大的實例完成,具有系統(tǒng)性和整體性,在項目開發(fā)中采用了先進(jìn)的基于.NET的技術(shù),有助于學(xué)生對新知識、新技術(shù)的了解和學(xué)習(xí)。
為了方便讀者自學(xué),編者盡可能詳細(xì)地講解SQL Server 2012和各主要部分內(nèi)容,并附有大量的屏幕圖例供讀者學(xué)習(xí)參考,使讀者有身臨其境的感覺。本書概念清晰、敘述準(zhǔn)確、重點突出,理論與實踐緊密結(jié)合,注重對操作技能的培養(yǎng);同時圖文并茂,提供了豐富的實例,有助于讀者對所學(xué)內(nèi)容的掌握。本書由李巖、張瑞雪任主編,張玉芬、徐宏偉任副主編。第1~3章由張瑞雪編寫;第4~7章由李巖編寫;第8、9、11章由徐宏偉編寫;第10、12、13章由張玉芬編寫,參加編寫的人員還有于洪鵬、王旭、李康樂等,全書由李巖統(tǒng)稿。
本書既可作為高等學(xué)校計算機(jī)及相關(guān)專業(yè)的教材和參考書,也可供從事應(yīng)用開發(fā)工作的人員學(xué)習(xí)、參考。
由于編者水平有限,加之時間倉促,書中疏漏與錯誤之處在所難免,懇切希望廣大讀者多提寶貴意見。
編者
2015年5月
第1章數(shù)據(jù)庫基礎(chǔ)/1
1.1數(shù)據(jù)庫系統(tǒng)概述/1
1.1.1數(shù)據(jù)庫的基本概念/1
1.1.2數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展/3
1.1.3數(shù)據(jù)庫系統(tǒng)的特點/5
1.2數(shù)據(jù)模型/7
1.2.1兩類數(shù)據(jù)模型/8
1.2.2數(shù)據(jù)模型的組成要素/9
1.2.3概念模型/10
1.2.4常用的數(shù)據(jù)模型/13
1.3關(guān)系數(shù)據(jù)庫的基本原理/16
1.3.1關(guān)系模型/16
1.3.2關(guān)系運(yùn)算/18
1.3.3關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言/21
1.3.4關(guān)系模型的規(guī)范化/23
1.4實訓(xùn)項目: 數(shù)據(jù)庫基礎(chǔ)/30
本章小結(jié)/31
習(xí)題/32第2章SQL Server 2012概述/33
2.1SQL Server 2012簡介/33
2.1.1SQL Server 2012的發(fā)展及特點/33
2.1.2SQL Server 2012的版本/36
2.1.3SQL Server 2012的體系結(jié)構(gòu)/37
2.2SQL Server 2012的安裝/38
2.2.1SQL Server 2012安裝環(huán)境的配置/38
2.2.2SQL Server 2012的安裝過程/41
2.3SQL Server 2012常用工具/54
2.3.1SQL Server 2012配置工具/54
2.3.2SQL Server 2012管理平臺/55
2.3.3啟動、停止、暫停和重新啟動
SQL Server服務(wù)/572.3.4注冊服務(wù)器/58
2.3.5創(chuàng)建服務(wù)器組/60
2.4實訓(xùn)項目: SQL Server 2012的安裝及基本
使用/61
本章小結(jié)/62
習(xí)題/62第3章SQL Server數(shù)據(jù)庫/63
3.1SQL Server數(shù)據(jù)庫概述/63
3.1.1數(shù)據(jù)庫文件/63
3.1.2數(shù)據(jù)庫文件組/64
3.1.3數(shù)據(jù)庫對象/65
3.1.4系統(tǒng)數(shù)據(jù)庫/66
3.2創(chuàng)建數(shù)據(jù)庫/67
3.2.1使用對象資源管理器創(chuàng)建數(shù)據(jù)庫/68
3.2.2使用SQL命令創(chuàng)建數(shù)據(jù)庫/70
3.2.3事務(wù)日志/73
3.3管理和維護(hù)數(shù)據(jù)庫/74
3.3.1打開或切換數(shù)據(jù)庫/74
3.3.2查看數(shù)據(jù)庫信息/75
3.3.3使用對象資源管理器修改數(shù)據(jù)庫
配置/76
3.3.4使用TSQL命令修改數(shù)據(jù)庫配置/76
3.3.5分離與附加數(shù)據(jù)庫/78
3.3.6刪除數(shù)據(jù)庫/80
3.4實訓(xùn)項目: 數(shù)據(jù)庫基本操作/81
本章小結(jié)/85
習(xí)題/85第4章SQL Server數(shù)據(jù)表的管理/86
4.1創(chuàng)建表/86
4.1.1表的設(shè)計/86
4.1.2數(shù)據(jù)類型/87
4.1.3使用對象資源管理器創(chuàng)建表/90
4.1.4使用TSQL命令方式創(chuàng)建表/91
4.2表的管理和維護(hù)/93
4.2.1查看表的屬性/93
4.2.2修改表結(jié)構(gòu)/94
4.2.3刪除數(shù)據(jù)表/97
4.3表數(shù)據(jù)的操作/99
4.3.1使用對象資源管理器操作表數(shù)據(jù)/99
4.3.2使用INSERT命令向表中添加數(shù)據(jù)/99
4.3.3使用UPDATE命令修改表中的
數(shù)據(jù)/100
4.3.4使用DELETE或TRANCATE TABLE
命令刪除表中的數(shù)據(jù)/101
4.3.5常用系統(tǒng)數(shù)據(jù)表/102
4.4實訓(xùn)項目: 數(shù)據(jù)庫表的操作/103
本章小結(jié)/105
習(xí)題/105第5章數(shù)據(jù)庫的查詢和視圖/107
5.1簡單SELECT語句/108
5.1.1SELECT語句概述/109
5.1.2完整的SELECT語句的基本語法
格式/109
5.1.3基本的SELECT語句/110
5.1.4INTO子句/114
5.1.5WHERE子句/115
5.1.6ORDER BY子句/119
5.2SELECT語句的統(tǒng)計功能/119
5.2.1集合函數(shù)/119
5.2.2GROUP BY子句/121
5.2.3COMPUTE子句/122
5.3SELECT語句中的多表連接/122
5.3.1交叉連接/123
5.3.2內(nèi)連接/123
5.3.3外連接/124
5.3.4自連接/126
5.3.5合并查詢/126
5.4子查詢/127
5.4.1嵌套子查詢/128
5.4.2相關(guān)子查詢/130
5.4.3使用子查詢向表中添加多條記錄/132
5.5數(shù)據(jù)庫的視圖/132
5.5.1視圖的概述/132
5.5.2視圖的創(chuàng)建/134
5.5.3修改和查看視圖/138
5.5.4使用視圖/140
5.5.5刪除視圖/144
5.6實訓(xùn)項目: 數(shù)據(jù)查詢和視圖的應(yīng)用/145
本章小結(jié)/146
習(xí)題/147第6章索引及其應(yīng)用/148
6.1索引概述/148
6.1.1索引的功能/148
6.1.2創(chuàng)建索引的原則/149
6.1.3索引的分類/150
6.2創(chuàng)建索引/152
6.2.1系統(tǒng)自動創(chuàng)建索引/152
6.2.2使用對象資源管理器創(chuàng)建索引/152
6.2.3使用TSQL語句創(chuàng)建索引/155
6.3管理和維護(hù)索引/157
6.3.1查看和維護(hù)索引信息/157
6.3.2更改索引標(biāo)識/157
6.3.3刪除索引/157
6.3.4索引的分析與維護(hù)/158
6.4全文索引/162
6.4.1使用對象資源管理器創(chuàng)建全文
索引/163
6.4.2使用TSQL創(chuàng)建全文索引/169
6.5實訓(xùn)項目: 索引的創(chuàng)建及操作/171
本章小結(jié)/172
習(xí)題/172第7章事務(wù)處理與鎖/173
7.1事務(wù)概述/173
7.1.1事務(wù)的概念/173
7.1.2事務(wù)的特征/174
7.2事務(wù)處理/174
7.3鎖簡介/177
7.3.1SQL Server鎖的模式/179
7.3.2SQL Server中鎖的查看/180
7.4死鎖及其排除簡介/181
7.5實訓(xùn)項目: 事務(wù)處理與鎖的應(yīng)用/183
本章小結(jié)/184
習(xí)題/184第8章TSQL程序設(shè)計基礎(chǔ)/185
8.1批處理、腳本和注釋/185
8.1.1批處理/185
8.1.2腳本/187
8.1.3注釋/187
8.2常量、變量和表達(dá)式/188
8.2.1常量/188
8.2.2變量/189
8.2.3運(yùn)算符與表達(dá)式/194
8.3流程控制語句/197
8.3.1BEGIN...END語句塊/197
8.3.2IF...ELSE語句/197
8.3.3CASE表達(dá)式/198
8.3.4無條件轉(zhuǎn)移語句GOTO/200
8.3.5WAITFOR語句/201
8.3.6WHILE語句/201
8.3.7RETURN語句/203
8.4系統(tǒng)內(nèi)置函數(shù)/203
8.4.1行集函數(shù)/204
8.4.2聚合函數(shù)/204
8.4.3標(biāo)量函數(shù)/205
8.5用戶自定義函數(shù)/215
8.5.1用戶自定義函數(shù)的創(chuàng)建與調(diào)用/215
8.5.2查看與修改用戶自定義函數(shù)/221
8.5.3刪除用戶自定義函數(shù)/224
8.6游標(biāo)及其使用/224
8.6.1游標(biāo)概述/224
8.6.2游標(biāo)的定義與使用/226
8.7實訓(xùn)項目: TSQL程序設(shè)計/233
本章小結(jié)/233
習(xí)題/234第9章存儲過程/235
9.1存儲過程概述/235
9.1.1存儲過程的分類/235
9.1.2存儲過程的優(yōu)點/237
9.2建立和執(zhí)行存儲過程/238
9.2.1系統(tǒng)表sysobjects/238
9.2.2創(chuàng)建存儲過程/239
9.2.3創(chuàng)建不帶參數(shù)的存儲過程/241
9.2.4存儲過程的執(zhí)行/241
9.2.5帶輸入?yún)?shù)的存儲過程/244
9.2.6帶輸出參數(shù)的存儲過程/246
9.3存儲過程的管理與維護(hù)/248
9.3.1查看存儲過程的定義信息/249
9.3.2存儲過程的修改/251
9.3.3存儲過程的重編譯/253
9.3.4刪除存儲過程/254
9.4實訓(xùn)項目: 存儲過程的使用/254
本章小結(jié)/255
習(xí)題/256第10章數(shù)據(jù)完整性與觸發(fā)器/257
10.1數(shù)據(jù)完整性的概念/257
10.2數(shù)據(jù)完整性的分類/258
10.3實體完整性的實現(xiàn)/259
10.3.1創(chuàng)建PRIMARY KEY約束和
UNIQUE約束/259
10.3.2刪除PRIMARY KEY約束和
UNIQUE約束/262
10.4域完整性的實現(xiàn)/263
10.4.1CHECK約束的定義與刪除/263
10.4.2規(guī)則對象的定義、使用與刪除/266
10.4.3默認(rèn)值約束的定義與刪除/268
10.4.4默認(rèn)值對象的定義、使用與刪除/270
10.5參照完整性/272
10.5.1參照完整性的實現(xiàn)/272
10.5.2參照完整性的刪除/272
10.5.3使用TSQL語句管理參照完
整性/273
10.6標(biāo)識列/275
10.7自定義數(shù)據(jù)類型/277
10.7.1創(chuàng)建自定義數(shù)據(jù)類型/277
10.7.2刪除自定義數(shù)據(jù)類型/279
10.8觸發(fā)器概述/279
10.8.1觸發(fā)器的優(yōu)點/279
10.8.2觸發(fā)器的種類/280
10.8.3使用觸發(fā)器的限制/281
10.9創(chuàng)建觸發(fā)器/281
10.9.1DML觸發(fā)器的工作原理/281
10.9.2創(chuàng)建DML觸發(fā)器/282
10.9.3創(chuàng)建DDL觸發(fā)器/287
10.10觸發(fā)器的管理/289
10.10.1觸發(fā)器的查看/289
10.10.2觸發(fā)器的修改與刪除/290
10.10.3觸發(fā)器的禁用和啟用/291
10.11實訓(xùn)項目: 數(shù)據(jù)庫完整性和觸發(fā)器/292
本章小結(jié)/293
習(xí)題/294第11章備份、恢復(fù)與導(dǎo)入、導(dǎo)出/295
11.1備份與恢復(fù)的基本概念/295
11.1.1備份與恢復(fù)的需求分析/295
11.1.2備份數(shù)據(jù)庫的基本概念/296
11.1.3數(shù)據(jù)庫恢復(fù)的概念/298
11.2備份數(shù)據(jù)庫/299
11.2.1使用對象資源管理器備份數(shù)據(jù)庫/299
11.2.2創(chuàng)建備份設(shè)備/301
11.2.3使用SQL語句備份數(shù)據(jù)庫/302
11.3恢復(fù)數(shù)據(jù)庫/304
11.3.1恢復(fù)數(shù)據(jù)庫前的準(zhǔn)備/304
11.3.2使用對象資源管理器恢復(fù)數(shù)據(jù)庫/306
11.3.3使用SQL語句恢復(fù)數(shù)據(jù)庫/308
11.4導(dǎo)入與導(dǎo)出/310
11.5實訓(xùn)項目: 備份、恢復(fù)與導(dǎo)入、導(dǎo)出/318
本章小結(jié)/318
習(xí)題/318第12章SQL Server的安全管理/319
12.1SQL Server的安全模型/319
12.1.1SQL Server訪問控制/319
12.1.2SQL Server身份驗證模式/320
12.2服務(wù)器的安全性/321
12.2.1創(chuàng)建和修改登錄賬戶/321
12.2.2禁止和刪除登錄賬戶/326
12.2.3服務(wù)器角色/328
12.3數(shù)據(jù)庫的安全性/329
12.3.1添加數(shù)據(jù)庫用戶/329
12.3.2修改數(shù)據(jù)庫用戶/330
12.3.3刪除數(shù)據(jù)庫用戶/331
12.4數(shù)據(jù)庫用戶角色/332
12.4.1固定數(shù)據(jù)庫角色/332
12.4.2自定義數(shù)據(jù)庫角色/332
12.4.3增加和刪除數(shù)據(jù)庫角色成員/334
12.5權(quán)限/335
12.5.1權(quán)限概述/336
12.5.2權(quán)限的管理/337
12.6實訓(xùn)項目: SQL Server的安全管理/340
本章小結(jié)/342
習(xí)題/342第13章SQL Server開發(fā)與編程/343
13.1ADO.NET簡介/343
13.1.1ADO.NET對象模型/343
13.1.2.NET數(shù)據(jù)提供程序/344
13.1.3數(shù)據(jù)集/346
13.1.4數(shù)據(jù)集的核心對象/347
13.2訪問數(shù)據(jù)/348
13.2.1SqlConnection類/348
13.2.2SqlDataAdapter類/350
13.2.3DataGrid控件/351
13.2.4DataGridView控件/352
13.3學(xué)生選課系統(tǒng)/353
13.3.1學(xué)生選課系統(tǒng)簡介/353
13.3.2數(shù)據(jù)庫設(shè)計/353
13.3.3創(chuàng)建數(shù)據(jù)庫和表/355
13.3.4公共類/355
13.3.5系統(tǒng)登錄與主窗體/358
本章小結(jié)/387