內容簡介
SQL Server資料庫是Microsoft公司推出的資料庫管理系統,2016版本在性能和人機互動等方面均有顯著提高。本書是一本幫助用戶踏入資料庫之門的教程。全書內容分為4部分。
第1部分(第1~7章)是基礎知識篇,包括資料庫入門簡介、SQLServer2016的安裝和卸載、創建資料庫、運算元據表和
視圖,還有SQLServer2016的管理以及數據維護。第2部分(第8~12章)是核心技術篇,包括T-SQL語言基本語法、SQL數據查詢、SQL數據操作、存儲過程以及觸發器的使用。第3部分(第13~18章)是高級使用篇,包括索引、游標、
SQL函式的使用,事務、性能最佳化以及雲計算、大數據與雲資料庫。第4部分(第19和20章)是資料庫實戰篇,選取兩個實際的商業化應用程式進行分析,使讀者能夠真正掌握商業化應用程式開發的精髓。
本書內容精練、重點突出、實例豐富,適合作為軟體開發入門者的自學用書,也適合作為高等院校相關專業的教學參考書,還可供開發人員查閱、參考。
圖書目錄
第1章 資料庫入門
1.1 資料庫系統概述 1
1.1.1 資料庫技術的發展 1
1.1.2 資料庫系統組成 3
1.2 資料庫體系結構 4
1.2.1 什麼是模式 4
1.2.2 三級模式結構 5
1.3 數據模型 6
1.3.1 數據模型的分類 6
1.3.2 E-R模型 7
1.3.3 層次模型 9
1.3.4 網狀模型 12
1.3.5 關係模型 13
1.4 常見資料庫 15
1.4.1 Access 15
1.4.2 SQL Server 16
1.4.3 Oracle 18
1.5 小結 19
1.6 經典習題與面試題 19
第2章走進SQLServer2016
2.1SQLServer2016簡介 20
2.2SQLServer2016的特點 21
2.2.1SQLServer2016中新的組件功能 21
2.2.2SQLServer2016混合雲技術 22
2.3安裝SQLServer2016 23
2.3.1SQLServer2016安裝必備 23
2.3.2SQLServer2016的安裝 24
2.3.3SQLServer2016的卸載 33
2.4使用SQLServer2016幫助 35
2.5小結 36
2.6經典習題與面試題 36
第3章創建資料庫
3.1資料庫簡介 37
3.1.1資料庫基本概念 37
3.1.2資料庫常用對象 39
3.1.3資料庫的組成 41
3.1.4系統資料庫 42
3.2SQLServer的命名規則 44
3.2.1標識符 44
3.2.2對象命名規則 45
3.2.3實例命名規則 46
3.3創建與管理資料庫 47
3.3.1使用管理器創建資料庫 47
3.3.2使用管理器修改資料庫 49
3.3.3使用管理器刪除資料庫 51
3.3.4操作學生資料庫 52
3.4小結 54
3.5經典習題與面試題 54
第4章數據表 55
4.1數據表概述 55
4.1.1SQLServer2016基本數據類型 56
4.1.2用戶自定義數據類型 60
4.2使用管理器管理數據表 63
4.2.1創建新數據表 63
4.2.2添加數據表欄位 64
4.2.3修改欄位數據類型 65
4.2.4重命名數據表 65
4.2.5刪除數據表 66
4.3運算元據約束 67
4.3.1用主鍵約束防止無效數據 67
4.3.2用唯一性約束防止重複數據 68
4.3.3檢查約束 69
4.3.4默認約束 71
4.3.5外鍵約束 71
4.4小結 72
4.5經典習題與面試題 72
第5章視圖
5.1視圖概述 74
5.1.1視圖的類型 75
5.1.2視圖的優缺點 75
5.2使用管理器管理視圖 76
5.2.1創建新視圖 77
5.2.2查看視圖信息 79
5.2.3創建基於視圖的視圖 85
5.2.4刪除視圖 85
5.3通過視圖運算元據 86
5.3.1在視圖中插入數據記錄 86
5.3.2在視圖中修改數據記錄 87
5.3.3在視圖中刪除數據記錄 87
5.4小結 88
5.5經典習題與面試題 88
第6章SQLServer資料庫管理
6.1資料庫在線上 89
6.1.1脫機資料庫 90
6.1.2在線上資料庫 91
6.2分離和附加資料庫 91
6.2.1分離資料庫 91
6.2.2附加資料庫 93
6.3導入導出數據 94
6.3.1導入SQLServer數據表 95
6.3.2導入其他數據源的數據 97
6.3.3導出SQLServer數據表 97
6.4備份和恢複數據庫 98
6.4.1備份類型 99
6.4.2恢復模式 99
6.4.3備份資料庫 100
6.4.4恢複數據庫 102
6.5收縮資料庫和檔案 103
6.5.1自動收縮資料庫 103
6.5.2手動收縮資料庫 104
6.6生成與執行SQL腳本 105
6.6.1將資料庫生成SQL腳本 105
6.6.2將數據表生成SQL腳本 107
6.6.3執行SQL腳本 107
6.7小結 109
6.8經典習題與面試題 109
第7章SQLServer系統維護
7.1SQLServer2016維護須知 110
7.2啟動SQLServer2016服務 111
7.2.1後台啟動SQLServer2016 111
7.2.2通過配置管理器啟動SQLServer2016 112
7.3註冊SQLServer2016 113
7.3.2伺服器的註冊與刪除 114
7.4SQLServer2016資料庫的安全設定 115
7.4.1更改登錄用戶驗證方式 115
7.4.2創建與刪除登錄用戶 116
7.4.3創建與刪除資料庫用戶 119
7.4.4設定伺服器角色許可權 121
7.4.5密碼策略 125
7.5小結 126
7.6經典習題與面試題 126
第8章T-SQL語言
8.1T-SQL概述 127
8.1.1T-SQL語言的組成 128
8.1.2T-SQL語句結構 128
8.1.3T-SQL語句 129
8.2常量 130
8.2.1數字常量 130
8.2.3日期和時間常量 131
8.2.4符號常量 132
8.3變數 132
8.3.1局部變數 132
8.3.2全局變數 135
8.3.3注釋符 135
8.3.4運算符 136
8.3.5通配符 139
8.4流程控制 140
8.4.1BEGIN…END塊語句 140
8.4.2IF單分支語句 141
8.4.3IF…ELSE雙分支語句 141
8.4.4CASE多分支語句 142
8.4.5WHILE循環語句 143
8.4.6WHILE…CONTINUE…BREAK中斷語句 144
8.4.7RETURN返回語句 145
8.4.8GOTO跳轉語句 146
8.5常用命令 147
8.5.1DECLARE定義命令 147
8.5.2PRINT輸出命令 148
8.5.3BACKUP備份資料庫 149
8.5.4RESTORE還原資料庫 152
8.5.5SELECT返回數據記錄 155
8.5.6SET設定命令 157
8.5.7SHUTDOWN關閉資料庫 159
8.5.8USE打開資料庫 160
8.6小結 160
8.7經典習題與面試題 161
第9章SQL數據查詢
9.1SELECT語句 162
9.1.1SELECT語句的基本結構 162
9.1.2用WITH語句檢查一致性 163
9.1.3用SELECT…FROM子句返回記錄 164
9.1.4用INTO子句將記錄寫入指定檔案 167
9.1.5用WHERE子句篩選符合條件的記錄 168
9.1.6用GROUPBY子句記錄分組 172
9.1.7用HAVING子句對聚合指定條件 173
9.1.8用ORDERBY子句排序 175
9.1.9用Distinct關鍵字排除重複值 176
9.1.10用Top關鍵字返回指定記錄 176
9.2Union合併多個查詢結果 177
9.2.1Union與連線之間的區別 177
9.2.2使用UnionAll合併表 177
9.2.3Union中的ORDERBY子句 178
9.2.4Union中的自動數據類型轉換 179
9.2.5使用Union合併不同類型的數據 180
9.2.6使用Union合併有不同列數的兩個表 180
9.2.7使用Union進行多表合併 181
9.3子查詢與嵌套查詢 182
9.3.1什麼是子查詢 182
9.3.2什麼是嵌套查詢 182
9.3.3簡單嵌套查詢 183
9.3.4帶IN的嵌套查詢 183
9.3.5帶NotIN的嵌套查詢 184
9.3.6帶Some的嵌套查詢 184
9.3.7帶Any的嵌套查詢 185
9.3.8帶All的嵌套查詢 185
9.3.9帶Exists的嵌套查詢 186
9.4連線查詢 187
9.4.1內部連線 187
9.4.2外部連線 187
9.4.3交叉連線 191
9.4.4連線多表的方法 191
9.5使用Case函式進行查詢 192
9.6小結 193
9.7經典習題與面試題 194
第10章SQL數據操作
10.1資料庫操作 195
10.1.1創建資料庫 195
10.1.2修改資料庫 196
10.1.3刪除資料庫 198
10.2數據表操作 198
10.2.1使用CREATETABLE語句創建表 198
10.2.2創建、修改和刪除約束 200
10.2.3使用ALTERTABLE語句修改表結構 201
10.2.4使用DROPTABLE語句刪除表 202
10.3數據操作 202
10.3.2使用INSERT語句添加數據 208
10.3.3使用UPDATE語句修改指定數據 209
10.4視圖操作 212
10.4.1使用CREATEVIEW語句創建視圖 212
10.4.2使用ALTERVIEW語句修改視圖 214
10.4.3使用DROPVIEW語句刪除視圖 215
10.5視圖中的數據操作 215
10.5.1向視圖中添加數據 215
10.5.2修改視圖中的數據 216
10.5.3刪除視圖中的數據 216
10.6小結 217
10.7經典習題與面試題 217
第11章存儲過程
11.1存儲過程概述 218
11.1.1什麼是存儲過程 219
11.1.2存儲過程的優點 219
11.2創建存儲過程 220
11.2.1使用嚮導創建存儲過程 220
11.2.2使用CREATEPROCEDURE語句創建存儲過程 221
11.3管理存儲過程 223
11.3.1執行存儲過程 223
11.3.2查看存儲過程 226
11.3.3修改存儲過程 228
11.3.4重命名存儲過程 230
11.3.5刪除存儲過程 230
11.4小結 231
11.5經典習題與面試題 232
第12章觸發器
12.1觸發器概述 233
12.1.1觸發器的概念 234
12.1.2觸發器的優點 234
12.1.3觸發器的種類 235
12.2創建觸發器 235
12.2.1創建DML觸發器 236
12.2.2創建DDL觸發器 240
12.2.3創建登錄觸發器 242
12.2.4限制非工作時間運算元據 243
12.2.5限制對保護數據的操作 243
12.2.6實現級聯操作 244
12.3管理觸發器 245
12.3.1查看觸發器 245
12.3.2修改觸發器 247
12.3.3重命名觸發器 248
12.3.4禁用和啟用觸發器 248
12.3.5刪除觸發器 250
12.4小結 251
12.5經典習題與面試題 251
第13章索引
13.1索引的概念 252
13.2索引的優缺點 252
13.2.1索引的優點 253
13.2.2索引的缺點 253
13.3索引的分類 253
13.3.1聚集索引 253
13.3.2非聚集索引 254
13.4索引的操作 254
13.4.1索引的創建 254
13.4.2查看索引信息 259
13.4.3索引的修改 260
13.4.4索引的刪除 262
13.4.5設定索引選項 262
13.5索引的分析與維護 264
13.5.1索引的分析 264
13.5.2索引的維護 265
13.6全文索引 267
13.6.1使用SSMS創建全文索引 267
13.6.2使用T-SQL語句創建全文索引 270
13.6.3使用T-SQL語句刪除全文索引 271
13.6.4全文目錄 272
13.6.5全文目錄的維護 274
13.7小結 275
13.8經典習題與面試題 275
第14章游標
14.1游標的概述 276
14.1.1游標的優點 277
14.1.2游標的類型 277
14.2游標的基本操作 278
14.2.1聲明游標 279
14.2.2打開游標 280
14.2.3讀取游標中的數據 280
14.2.4關閉游標 285
14.2.5釋放游標 286
14.3使用系統過程查看游標 286
14.3.1用sp_cursor_list查看當前連線打開的游標特性 286
14.3.2用sp_describe_cursor查看游標特性 288
14.4小結 289
14.5經典習題與面試題 290
第15章SQL函式
15.1聚合函式 291
15.1.1聚合函式概述 291
15.1.6用Count函式統計表記錄數 294
15.1.7用Distinct函式取不重複記錄 295
15.1.8查詢重複記錄 296
15.2數學函式 297
15.2.1數學函式概述 297
15.2.2用Abs函式求絕對值 298
15.2.3用Pi函式求圓周率 298
15.2.4Power函式 299
15.2.6Round函式 300
15.2.7Square函式和Sqrt函式 300
15.2.8三角函式 302
15.3字元串函式 303
15.3.1字元串函式概述 303
15.3.2Ascii函式 303
15.3.4Left函式 304
15.3.8Reverse函式 307
15.3.10Substring函式 309
15.4日期和時間函式 310
15.4.1日期和時間函式概述 310
15.4.2Getdate函式 310
15.4.6Datediff函式 313
15.4.7Dateadd函式 313
15.5轉換函式 314
15.5.1轉換函式概述 314
15.5.2Cast函式 314
15.6小結 316
15.7經典習題與面試題 317
第16章事務
16.1事務的概念 318
16.2顯式事務與隱式事務 319
16.2.1顯式事務 320
16.2.2隱式事務 322
16.2.3API中控制隱式事務 322
16.2.4事務的COMMIT和ROLLBACK 322
16.3使用事務 323
16.3.1開始事務 323
16.3.2結束事務 324
16.3.3回滾事務 325
16.3.4事務的工作機制 326
16.3.5自動提交事務 328
16.3.6事務的並發問題 328
16.3.7事務的隔離級別 329
16.4鎖 330
16.4.1SQLServer鎖機制 330
16.4.2鎖模式 330
16.4.3鎖的粒度 331
16.4.4查看鎖 332
16.4.5死鎖 332
16.5分散式事務處理 333
16.5.1分散式事務簡介 333
16.5.2創建分散式事務 334
16.5.3分散式處理協調器 334
16.6小結 335
16.7經典習題與面試題 336
第17章資料庫的性能最佳化
17.1.1規範化與非規範化 337
17.1.2選擇適當的數據類型 339
17.1.3索引的選擇 340
17.2查詢最佳化 340
17.2.1避免使用“*” 341
17.2.2避免負邏輯 341
17.2.3列操作 341
17.2.4避免使用DISTINCT 342
17.2.5存儲過程 342
17.3考慮並行 343
17.4索引操作 344
17.4.1避免在索引列上進行運算 345
17.4.2避免在索引列上用OR運算符 345
17.4.3避免在索引列上用ISNULL 346
17.5小結 346
17.6經典習題與面試題 347
第18章雲計算、大數據與雲資料庫
18.1雲計算概述 348
18.1.1什麼是雲計算 348
18.1.2雲計算的起源 349
18.1.3雲計算的特點和優勢 350
18.1.4雲計算的現狀 351
18.1.5雲計算的套用領域 352
18.2大數據概述 353
18.3NoSQL資料庫 355
18.3.2NoSQL資料庫概述 356
18.3.3NoSQL資料庫的優劣 357
18.3.4NoSQL資料庫的發展趨勢 358
18.4幾種主要的雲資料庫 358
18.5SQLServer2016的雲功能 360
18.5.1數據檔案部署到Azure雲環境 360
18.5.2備份到WindowsAzure存儲 362
18.6小結 363
第19章企業ERP管理系統
19.1系統分析 364
19.1.1需求分析 364
19.1.2可行性分析 365
19.2系統設計 365
19.2.1系統目標 365
19.2.2系統功能結構 365
19.2.3系統業務流程 366
19.2.4命名規範 367
19.3資料庫與數據表設計 368
19.3.1資料庫分析 368
19.3.2資料庫概念設計 368
19.3.3資料庫邏輯設計 370
19.3.4數據表邏輯關係 373
19.4小結 374
第20章人事管理系統
20.1系統分析 375
20.1.1需求分析 375
20.1.2可行性分析 377
20.2資料庫設計 377
20.2.1資料庫需求分析 377
20.2.2資料庫概念設計 377
20.2.3資料庫邏輯設計 379
20.2.4數據表邏輯關係 380
20.2.5創建資料庫 380
20.3小結 382