內容簡介
《SQL Server 2016從入門到精通》面向SQL Server 2016初學者,以及廣大資料庫設計愛好者。全書內容注重實用、涉及面廣,通俗易懂地介紹了SQL Server 2016資料庫套用與開發的相關基礎知識,提供了大量具體操作SQL Server 2016資料庫的示例,供讀者實踐。每節都清晰地闡述了代碼如何工作及作用,使讀者能在最短的時間內有效地掌握SQL Server 2016資料庫的套用。 《SQLServer2016從入門到精通》共18章,內容包括SQLServer2016的安裝與配置、資料庫的操作、數據表的操作、Transact-SQL語言基礎、Transact-SQL語句的查詢與套用、認識函式、數據的更新、規則、默認和完整性約束、創建和使用索引、事務和鎖、游標、使用存儲過程和自定義函式、視圖操作、觸發器、SQLServer2016的安全機制、資料庫的備份與恢復,最後通過開發企業人事管理系統進一步學習SQLServer2016在實際開發中的套用技術,並在大部分章節的最後提供典型習題,供讀者操作練習,加深理解。
《SQLServer2016從入門到精通》幾乎涉及了SQLServer2016資料庫套用與開發的所有重要知識,適合所有的SQLServer2016資料庫初學者快速入門,同時也適合想全面了解SQLServer2016的資料庫開發人員閱讀。通過全書的學習,讀者可以完全掌握SQLServer2016的技術要點並具備系統開發的基本技術。
作者
王英英,資深大學教師,長期從事網頁編程、資料庫管理等方面的教學培訓工作。
目 錄
第1章 初識SQL Server 2016 1
1.1 SQL Server 2016的新功能 1
1.2 SQL Server 2016的組成 3
1.2.1 SQL Server 2016資料庫引擎 3
1.2.2 分析服務 3
1.2.3 集成服務 4
1.2.4 報表服務 4
1.3 如何選擇SQL Server 2016的版本 4
1.4 安裝SQL Server 2016 5
1.4.1 SQL Server 2016 安裝環境需求 5
1.4.2 安裝SQL Server 2016 5
1.4.3 SQL Server 2016常見實用程式 14
1.5 安裝SQL Server Management Studio 16
1.6 SSMS基本操作 18
1.6.1 SSMS的啟動與連線 18
1.6.2 使用模板資源管理器、解決方案與項目腳本 20
1.6.3 配置SQL Server 2016伺服器的屬性 22
1.6.4 查詢編輯器 30
1.7本章小結33
1.8經典習題33
第2章資料庫的操作34
2.1資料庫組成34
2.1.1數據檔案35
2.1.2日誌檔案35
2.2系統資料庫35
2.2.1master資料庫35
2.2.2model資料庫35
2.2.3msdb資料庫36
2.2.4tempdb資料庫36
2.3創建資料庫36
2.3.1使用對象資源管理器創建資料庫36
2.3.2使用Transact-SQL創建資料庫40
2.4管理資料庫43
2.4.1修改資料庫43
2.4.2修改資料庫容量44
2.4.3增加資料庫容量45
2.4.4縮減資料庫容量48
2.4.5查看資料庫信息48
2.4.6資料庫更名52
2.4.7刪除資料庫53
2.5疑難解惑54
2.6經典習題55
第3章數據表的操作56
3.1SQLServer2016資料庫對象56
3.2創建數據表57
3.2.1數據類型58
3.2.2使用對象資源管理器創建表68
3.2.3使用Transact-SQL創建表69
3.3管理數據表71
3.3.1修改表欄位71
3.3.2修改表約束76
3.3.3查看錶中有關信息81
3.3.4刪除表83
3.4疑難解惑84
3.5經典習題85
第4章Transact-SQL語言基礎86
4.1Transact-SQL概述86
4.1.1什麼是Transact-SQL87
4.1.2T-SQL語法的約定87
4.2如何給標識符起名89
4.3常量90
4.3.1數字常量90
4.3.2字元串常量91
4.3.3日期和時間常量91
4.3.4符號常量91
4.4變數92
4.4.1全局變數92
4.4.2局部變數95
4.4.3批處理和腳本96
4.5運算符和表達式97
4.5.1算術運算符98
4.5.2比較運算符98
4.5.3邏輯運算符99
4.5.4連線運算符99
4.5.5按位運算符99
4.5.6運算符的優先權99
4.5.7什麼是表達式100
4.5.8Transact-SQL表達式的分類100
4.6Transact-SQL利器——通配符101
4.7Transact-SQL語言中的注釋101
4.8疑難解惑102
4.9經典習題103
第5章輕鬆掌握Transact-SQL語句104
5.1數據定義語句104
5.1.1CREATE的套用104
5.1.2DROP的功能107
5.1.3ALTER的功能108
5.2數據操作語句110
5.2.1數據的插入——INSERT110
5.2.2數據的更改——UPDATE112
5.2.3數據的刪除——DELETE113
5.2.4數據的查詢——SELECT115
5.3數據控制語句123
5.3.1授予許可權操作——GRANT123
5.3.2拒絕許可權操作——DENY123
5.3.3收回許可權操作——REVOKE123
5.4其他基本語句124
5.4.1數據聲明——DECLARE124
5.4.2數據賦值——SET125
5.4.3數據輸出——PRINT126
5.5流程控制語句126
5.5.1BEGIN…END語句127
5.5.2IF…ELSE語句127
5.5.3CASE語句128
5.5.4WHILE語句130
5.5.5GOTO語句132
5.5.6WAITFOR語句132
5.5.7RETURN語句133
5.6批處理語句134
5.7疑難解惑135
5.8經典習題135
第6章認識函式136
6.1SQLServer2016函式簡介136
6.2字元串函式136
6.2.1ASCII()函式137
6.2.2CHAR()函式137
6.2.3LEFT()函式137
6.2.4RIGHT()函式138
6.2.5LTRIM()函式138
6.2.6RTRIM()函式139
6.2.7STR()函式139
6.2.8字元串逆序的函式REVERSE(s)140
6.2.9計算字元串長度的函式LEN(str)140
6.2.10匹配子串開始位置的函式141
6.2.11SUBSTRING()函式141
6.2.12LOWER()函式142
6.2.13UPPER()函式143
6.2.14替換函式REPLACE(s,s1,s2)143
6.3數學函式144
6.3.1絕對值函式ABS(x)和返回圓周率的函式PI()144
6.3.2平方根函式SQRT(x)144
6.3.3獲取隨機數的函式RAND()和RAND(x)145
6.3.4四捨五入函式ROUND(x,y)146
6.3.5符號函式SIGN(x)146
6.3.6獲取整數的函式CEILING(x)和FLOOR(x)147
6.3.7冪運算函式POWER(x,y)、SQUARE(x)和EXP(x)148
6.3.8對數運算函式LOG(x)和LOG10(x)149
6.3.9角度與弧度相互轉換的函式RADIANS(x)和DEGREES(x)150
6.3.10正弦函式SIN(x)和反正弦函式ASIN(x)151
6.3.11餘弦函式COS(x)和反餘弦函式ACOS(x)152
6.3.12正切函式、反正切函式和餘切函式152
6.4數據類型轉換函式154
6.5文本和圖像函式155
6.5.1TEXTPTR函式155
6.5.2TEXTVALID函式155
6.6日期和時間函式156
6.6.1獲取系統當前日期的函式GETDATE()156
6.6.2返回UTC日期的函式GETUTCDATE()156
6.6.3獲取天數的函式DAY(d)157
6.6.4獲取月份的函式MONTH(d)157
6.6.5獲取年份的函式YEAR(d)158
6.6.6獲取日期中指定部分字元串值的函式DATENAME(dp,d)158
6.6.7獲取日期中指定部分的整數值的函式DATEPART(dp,d)159
6.6.8計算日期和時間的函式DATEADD(dp,num,d)160
6.7系統函式160
6.7.1返回表中指定欄位的長度值160
6.7.2返回表中指定欄位的名稱161
6.7.3返回數據表達式的數據的實際長度函式161
6.7.4返回資料庫的編號162
6.7.5返回資料庫的名稱162
6.7.6返回當前資料庫默認的NULL值163
6.7.7返回伺服器端計算機的標識號163
6.7.8返回伺服器端計算機的名稱164
6.7.9返回資料庫對象的編號164
6.7.10返回用戶的SID165
6.7.11返回用戶的登錄名165
6.7.12返回資料庫對象的名稱166
6.7.13返回資料庫用戶的標識號166
6.7.14返回資料庫用戶名167
6.8疑難解惑167
6.9經典習題168
第7章Transact-SQL查詢169
7.1查詢工具的使用169
7.1.1編輯查詢169
7.1.2查詢結果的顯示方法171
7.2使用SELECT進行查詢172
7.2.1使用星號和列名173
7.2.2使用DISTINCT取消重複175
7.2.3使用TOP返回前n行176
7.2.4修改列標題176
7.2.5在查詢結果集中顯示字元串177
7.2.6查詢的列為表達式178
7.3使用WHERE子句進行條件查詢179
7.3.1使用關係表達式查詢179
7.3.2使用BETWEENAND表示範圍181
7.3.3使用IN關鍵字182
7.3.4使用LIKE關鍵字183
7.3.5使用ISNULL查詢空值187
7.3.6使用EXISTS關鍵字188
7.3.7使用ORDERBY排序190
7.3.8使用GROUPBY分組191
7.3.9使用HAVING對分組結果過濾193
7.3.10使用UNION合併查詢結果集194
7.4使用聚合函式統計匯總195
7.4.1使用SUM()求列的和196
7.4.2使用AVG()求列平均值196
7.4.3使用MAX()求列最大值198
7.4.4使用MIN()求列最小值199
7.4.5使用COUNT()統計200
7.5嵌套查詢202
7.5.1使用比較運算符202
7.5.2使用IN關鍵字203
7.5.3使用ANY、SOME和ALL關鍵字204
7.5.4使用EXISTS關鍵字205
7.6多表連線查詢207
7.6.1相等連線207
7.6.2不等連線208
7.6.3帶選擇條件的連線209
7.6.4自連線209
7.7外連線210
7.7.1左外連線210
7.7.2右外連線211
7.7.3全外連線212
7.8使用排序函式212
7.9動態查詢215
7.10疑難解惑216
7.11經典習題216
第8章數據的更新219
8.1插入數據——INSERT219
8.1.1插入單行數據220
8.1.2插入多行數據223
8.2修改數據——UPDATE225
8.2.1修改單行數據225
8.2.2修改多行數據226
8.3刪除數據——DELETE227
8.3.1刪除部分數據227
8.3.2刪除表中所有數據228
8.4疑難解惑229
8.5經典習題229
第9章規則、默認和完整性約束231
9.1規則和默認概述231
9.2規則的基本操作231
9.2.1創建規則231
9.2.2把自定義規則綁定到列232
9.2.3驗證規則作用233
9.2.4取消規則綁定233
9.2.5刪除規則234
9.3默認的基本操作234
9.3.1創建默認235
9.3.2把自定義默認綁定到列235
9.3.3驗證默認作用236
9.3.4取消默認綁定236
9.3.5刪除默認值237
9.4完整性約束237
9.4.1主鍵約束238
9.4.2外鍵約束241
9.4.3唯一性約束244
9.4.4CHECK約束245
9.4.5DEFAULT約束245
9.4.6NOTNULL約束245
9.5疑難解惑246
9.6經典習題246
第10章創建和使用索引247
10.1索引的含義和特點247
10.2索引的分類248
10.3索引的設計原則249
10.4創建索引250
10.4.1使用對象資源管理器創建索引250
10.4.2使用T-SQL語句創建索引251
10.5管理和維護索引254
10.5.1顯示索引信息254
10.5.2重命名索引256
10.5.3刪除索引257
10.6疑難解惑258
10.7經典習題259
第11章事務和鎖260
11.1事務管理260
11.1.1事務的原理261
11.1.2事務管理的常用語句262
11.1.3事務的隔離級別262
11.1.4事務的套用案例263
11.2鎖265
11.2.1鎖的內涵與作用265
11.2.2可鎖定資源與鎖的類型266
11.2.3死鎖267
11.2.4鎖的套用案例269
11.3疑難解惑273
11.4經典習題273
第12章游標274
12.1認識游標274
12.1.1游標的概念274
12.1.2游標的優點274
12.1.3游標的分類275
12.2游標的基本操作276
12.2.1聲明游標276
12.2.2打開游標278
12.2.3讀取游標中的數據278
12.2.4關閉游標280
12.2.5釋放游標280
12.3游標的運用281
12.3.1使用游標變數281
12.3.2用游標為變數賦值282
12.3.3用ORDERBY子句改變游標中行的順序283
12.3.4用游標修改數據284
12.3.5用游標刪除數據285
12.4使用系統存儲過程管理游標286
12.4.1sp_cursor_list存儲過程286
12.4.2sp_describe_cursor存儲過程288
12.4.3sp_describe_cursor_columns存儲過程289
12.4.4sp_describe_cursor_tables存儲過程291
12.5疑難解惑292
12.6經典習題292
第13章存儲過程和自定義函式293
13.1存儲過程概述293
13.2存儲過程分類294
13.2.1系統存儲過程294
13.2.2用戶存儲過程294
13.2.3擴展存儲過程295
13.3創建存儲過程295
13.3.1如何創建存儲過程295
13.3.2調用存儲過程298
13.3.3創建帶輸入參數的存儲過程300
13.3.4創建帶輸出參數的存儲過程302
13.4管理存儲過程303
13.4.1修改存儲過程303
13.4.2查看存儲過程信息305
13.4.3重命名存儲過程307
13.4.4刪除存儲過程307
13.5擴展存儲過程308
13.6自定義函式310
13.6.1創建標量函式311
13.6.2創建表值函式312
13.6.3刪除函式313
13.7疑難解惑314
13.8經典習題315
第14章視圖操作316
14.1視圖概述316
14.1.1視圖的概念316
14.1.2視圖的分類317
14.1.3視圖的優點和作用317
14.2創建視圖318
14.2.1使用視圖設計器創建視圖318
14.2.2使用T-SQL命令創建視圖320
14.3修改視圖322
14.4查看視圖信息323
14.5使用視圖修改數據325
14.5.1通過視圖向基本表中插入數據325
14.5.2通過視圖修改基本表中的數據326
14.5.3通過視圖刪除基本表中的數據326
14.6刪除視圖327
14.7疑難解惑328
14.8經典習題328
第15章觸發器329
15.1觸發器概述329
15.1.1什麼是觸發器329
15.1.2觸發器作用330
15.1.3觸發器分類330
15.2創建DML觸發器331
15.2.1INSERT觸發器331
15.2.2DELETE觸發器334
15.2.3UPDATE觸發器335
15.2.4替代觸發器336
15.2.5允許使用嵌套觸發器337
15.2.6遞歸觸發器338
15.3創建DDL觸發器339
15.3.1創建DDL觸發器的語法340
15.3.2創建伺服器作用域的DDL觸發器340
15.4管理觸發器341
15.4.1查看觸發器341
15.4.2修改觸發器342
15.4.3刪除觸發器343
15.4.4啟用和禁用觸發器344
15.5疑難解惑345
15.6經典習題345
第16章SQLServer2016的安全機制346
16.1SQLServer2016安全性概述346
16.1.1SQLServer2016的安全機制簡介346
16.1.2基本安全術語348
16.2安全驗證方式349
16.2.1Windows身份驗證模式349
16.2.2混合模式349
16.2.3設定驗證模式350
16.3SQLServer2016登錄名350
16.3.1創建登錄賬戶350
16.3.2修改登錄賬戶357
16.3.3刪除登錄賬戶359
16.4SQLServer2016的角色與許可權359
16.4.1固定伺服器角色360
16.4.2資料庫角色361
16.4.3自定義資料庫角色361
16.4.4應用程式角色364
16.4.5將登錄指派到角色366
16.4.6將角色指派到多個登錄賬戶367
16.4.7許可權管理368
16.5疑難解惑371
16.6經典習題371
第17章資料庫的備份與恢復372
17.1備份與恢復介紹372
17.1.1備份類型372
17.1.2恢復模式373
17.1.3配置恢復模式374
17.2備份設備375
17.2.1備份設備類型375
17.2.2創建備份設備375
17.2.3查看備份設備377
17.2.4刪除備份設備377
17.3使用T-SQL語言備份資料庫378
17.3.1完整備份與差異備份378
17.3.2檔案和檔案組備份380
17.3.3事務日誌備份382
17.4在SQLServerManagementStudio中還原資料庫383
17.4.1還原資料庫的方式383
17.4.2還原資料庫前要注意的事項384
17.4.3還原資料庫備份386
17.4.4還原檔案和檔案組備份387
17.5用T-SQL語句還原資料庫388
17.5.1完整備份還原388
17.5.2差異備份還原391
17.5.3事務日誌備份還原391
17.5.4檔案和檔案組備份還原392
17.5.5將資料庫還原到某個時間點392
17.5.6將檔案還原到新位置上393
17.6建立自動備份的維護計畫394
17.7通過AlwaysEncrypted安全功能為數據加密397
17.8動態數據禁止400
17.9疑難解惑403
17.10經典習題404
第18章開發企業人事管理系統405
18.1需求分析405
18.2系統功能結構406
18.2.1構建開發環境406
18.2.2企業人事管理系統功能結構406
18.3資料庫設計407
18.3.1資料庫分析407
18.3.2資料庫實體E-R圖407
18.3.3資料庫表的設計411
18.4開發前準備工作414
18.5用戶登錄模組421
18.5.1定義資料庫連線方法422
18.5.2防止視窗被關閉425
18.5.3驗證用戶名和密碼425
18.6人事檔案管理模組427
18.6.1界面開發427
18.6.2代碼開發428
18.6.3添加和編輯員工照片445
18.7用戶設定模組446
18.7.1添加/修改用戶信息447
18.7.2刪除用戶基本信息450
18.7.3設定用戶許可權451
18.8資料庫維護模組452
18.8.1資料庫備份功能453
18.8.2資料庫還原功能454
18.9系統運行454
18.9.1登錄界面454
18.9.2企業人事管理系統主界面455
18.9.3人事檔案管理界面455
18.9.4人事資料查詢界面455
18.9.5員工信息提醒界面456
18.9.6員工通訊錄界面456
18.9.7日常記事界面457
18.9.8用戶設定457
18.9.9基礎信息維護管理457
18.10項目總結458