內容簡介
《SQL Server從入門到精通(第4版)》從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了SQL Server開發所必需的各方面技術。全書分為4篇共20章,內容包括資料庫基礎、SQL Server資料庫環境搭建、SQL Server服務的啟動與註冊、創建與管理資料庫、運算元據表、SQL基礎、SQL函式的使用、SQL數據查詢基礎、SQL數據高級查詢、視圖的使用、存儲過程、觸發器、游標的使用、索引與數據完整性、SQL中的事務、維護SQL Server資料庫、資料庫的安全機制、Visual C++ + SQL Server實現酒店客房管理系統、C# + SQL Server實現企業人事管理系統和Java + SQL Server實現學生成績管理系統。所有知識都結合具體實例進行介紹,涉及的程式代碼給出了詳細的注釋,讀者可以輕鬆領會SQL Server 2019的精髓,快速提高開發技能。
圖書目錄
第1篇 基礎知識
第1章 資料庫基礎 2
視頻講解:34分鐘
1.1 資料庫系統簡介 2
1.1.1 資料庫技術的發展 2
1.1.2 資料庫系統的組成 3
1.2 資料庫的體系結構 3
1.2.1 資料庫三級模式結構 4
1.2.2 三級模式之間的映射 5
1.3 數據模型 5
1.3.1 數據模型的概念 6
1.3.2 常見的數據模型 6
1.3.3 關係資料庫的規範化 7
1.3.4 關係資料庫的設計原則 7
1.3.5 實體與關係 8
1.4 常見關係資料庫 8
1.4.1 Access資料庫 8
1.4.2 SQL Server資料庫 8
1.4.3 Oracle資料庫 9
1.4.4 MySQL資料庫 9
1.5 小結 9
1.6 實踐與練習 9
第2章 SQL Server資料庫環境搭建 10
視頻講解:44分鐘
2.1 SQL Server資料庫簡介 10
2.2 SQL Server 2019的安裝與卸載 10
2.2.1 SQL Server 2019安裝必備條件 11
2.2.2 下載SQL Server 2019安裝引導檔案 11
2.2.3 下載SQL Server 2019安裝檔案 12
2.2.4 安裝SQL Server 2019資料庫 13
2.2.5 安裝SQL Server Management Studio管理工具 21
2.2.6 啟動SQL Server管理工具 22
2.2.7 SQL Server 2019的卸載 22
2.3 小結 23
第3章 SQL Server服務的啟動與註冊 24
視頻講解:12分鐘
3.1 SQL Server資料庫服務 24
3.2 啟動SQL Server服務 25
3.2.1 通過後台啟動服務 25
3.2.2 通過配置管理器啟動服務 25
3.3 註冊SQL Server伺服器 26
3.3.1 創建與刪除伺服器組 26
3.3.2 註冊與刪除伺服器 28
3.4 小結 29
3.5 實踐與練習 29
第4章 創建與管理資料庫 30
視頻講解:24分鐘
4.1 認識資料庫 30
4.1.1 資料庫基本概念 30
4.1.2 資料庫常用對象 31
4.1.3 資料庫組成 32
4.1.4 系統資料庫 33
4.2 SQL Server的命名規則 33
4.2.1 標識符命名規則 33
4.2.2 對象命名規則 34
4.2.3 實例命名規則 35
4.3 資料庫的創建與管理 35
4.3.1 創建資料庫 35
4.3.2 修改資料庫 40
4.3.3 刪除資料庫 43
4.4 小結 44
4.5 實踐與練習 44
第5章 運算元據表 45
視頻講解:74分鐘
5.1 數據表基礎 46
5.1.1 基本數據類型 46
5.1.2 用戶自定義數據類型 47
5.1.3 數據表的數據完整性 48
5.2 數據表的創建與管理 49
5.2.1 以界面方式運算元據表 50
5.2.2 使用CREATE TABLE語句創建表 51
5.2.3 使用ALTER TABLE語句修改表結構 54
5.2.4 使用DROP TABLE語句刪除表 56
5.3 管理數據 56
5.3.1 使用INSERT語句添加數據 56
5.3.2 使用UPDATE語句修改數據 57
5.3.3 使用DELETE語句刪除數據 58
5.4 創建、刪除和修改約束 58
5.4.1 非空約束 58
5.4.2 主鍵約束 59
5.4.3 唯一約束 60
5.4.4 檢查約束 62
5.4.5 默認約束 63
5.4.6 外鍵約束 64
5.5 關係的創建與維護 66
5.5.1 一對一關係 66
5.5.2 一對多關係 67
5.5.3 多對多關係 68
5.6 小結 68
5.7 實踐與練習 68
第2篇 核心技術
第6章 SQL基礎 70
視頻講解:106分鐘
6.1 SQL概述 70
6.1.1 SQL的組成 71
6.1.2 SQL語句結構 71
6.1.3 SQL語句分類 72
6.2 常量 72
6.2.1 數字常量 72
6.2.2 字元串常量 72
6.2.3 日期和時間常量 73
6.2.4 符號常量 73
6.3 變數 73
6.3.1 局部變數 73
6.3.2 全局變數 75
6.4 注釋符、運算符與通配符 76
6.4.1 注釋符 76
6.4.2 運算符 77
6.4.3 通配符 80
6.5 流程控制 80
6.5.1 BEGIN...END 80
6.5.2 IF 81
6.5.3 IF…ELSE 82
6.5.4 CASE 83
6.5.5 WHILE 85
6.5.6 WHILE…CONTINUE…BREAK 86
6.5.7 RETURN 87
6.5.8 GOTO 88
6.5.9 WAITFOR 88
6.6 常用命令 89
6.6.1 DBCC 89
6.6.2 CHECKPOINT 90
6.6.3 DECLARE 90
6.6.4 PRINT 92
6.6.5 RAISERROR 92
6.6.6 READTEXT 93
6.6.7 BACKUP 93
6.6.8 RESTORE 94
6.6.9 SELECT 96
6.6.10 SET 97
6.6.11 SHUTDOWN 98
6.6.12 WRITETEXT 99
6.6.13 USE 99
6.7 小結 100
6.8 實踐與練習 100
第7章 SQL函式的使用 101
視頻講解:68分鐘
7.1 聚合函式 101
7.1.1 聚合函式概述 102
7.1.2 SUM函式 102
7.1.3 AVG函式 103
7.1.4 MIN函式 104
7.1.5 MAX函式 104
7.1.6 COUNT函式 105
7.1.7 DISTINCT函式 106
7.1.8 查詢重複記錄 107
7.2 數學函式 107
7.2.1 數學函式概述 108
7.2.2 ABS函式 108
7.2.3 PI函式 109
7.2.4 POWER函式 109
7.2.5 RAND函式 109
7.2.6 ROUND函式 110
7.2.7 SQUARE函式和SQRT函式 111
7.2.8 三角函式 112
7.3 字元串函式 114
7.3.1 字元串函式概述 114
7.3.2 ASCII函式 114
7.3.3 CHARINDEX函式 116
7.3.4 LEFT函式 116
7.3.5 RIGHT函式 117
7.3.6 LEN函式 118
7.3.7 REPLACE函式 118
7.3.8 REVERSE函式 119
7.3.9 STR函式 119
7.3.10 SUBSTRING函式 120
7.4 日期和時間函式 121
7.4.1 日期和時間函式概述 121
7.4.2 GETDATE函式 121
7.4.3 DAY函式 122
7.4.4 MONTH函式 122
7.4.5 YEAR函式 122
7.4.6 DATEDIFF函式 123
7.4.7 DATEADD函式 124
7.5 轉換函式 125
7.5.1 轉換函式概述 125
7.5.2 CAST函式 126
7.5.3 CONVERT函式 126
7.6 元數據函式 128
7.6.1 元數據函式概述 128
7.6.2 COL_LENGTH函式 129
7.6.3 COL_NAME函式 130
7.6.4 DB_NAME函式 130
7.7 小結 131
7.8 實踐與練習 131
第8章 SQL數據查詢基礎 132
視頻講解:59分鐘
8.1 SELECT檢索數據 132
8.1.1 SELECT語句的基本結構 133
8.1.2 WITH子句 134
8.1.3 SELECT…FROM子句 135
8.1.4 INTO子句 139
8.1.5 WHERE子句 140
8.1.6 GROUP BY子句 150
8.1.7 HAVING子句 152
8.1.8 ORDER BY子句 152
8.1.9 COMPUTE子句 153
8.1.10 DISTINCT關鍵字 155
8.1.11 TOP關鍵字 155
8.2 UNION合併多個查詢結果 156
8.2.1 UNION與連線之間的區別 156
8.2.2 使用UNION ALL合併表 157
8.2.3 UNION中的ORDER BY子句 158
8.2.4 UNION中的自動數據類型轉換 158
8.2.5 使用UNION合併不同類型的數據 159
8.2.6 使用UNION合併有不同列數的兩個表 159
8.2.7 使用UNION進行多表合併 159
8.3 小結 160
8.4 實踐與練習 160
第9章 SQL數據高級查詢 161
視頻講解:29分鐘
9.1 子查詢與嵌套查詢 161
9.1.1 子查詢概述 162
9.1.2 嵌套查詢概述 162
9.1.3 簡單的嵌套查詢 162
9.1.4 帶IN的嵌套查詢 163
9.1.5 帶NOT IN的嵌套查詢 163
9.1.6 帶SOME的嵌套查詢 164
9.1.7 帶ANY的嵌套查詢 164
9.1.8 帶ALL的嵌套查詢 165
9.1.9 帶EXISTS的嵌套查詢 165
9.2 連線查詢 166
9.2.1 內連線 166
9.2.2 外連線 167
9.2.3 交叉連線 169
9.2.4 連線多表 170
9.3 使用CASE函式進行查詢 171
9.4 小結 174
9.5 實踐與練習 174
第10章 視圖的使用 175
視頻講解:13分鐘
10.1 視圖概述 175
10.2 視圖的分類與操作 176
10.2.1 以界面方式操作視圖 176
10.2.2 使用CREATE VIEW語句創建視圖 177
10.2.3 使用ALTER VIEW語句修改視圖 179
10.2.4 使用DROP VIEW語句刪除視圖 180
10.2.5 使用sp_rename重命名視圖 181
10.3 通過視圖運算元據 182
10.3.1 從視圖中瀏覽數據 182
10.3.2 向視圖中添加數據 183
10.3.3 修改視圖中的數據 183
10.3.4 刪除視圖中的數據 184
10.4 小結 184
10.5 實踐與練習 184
第3篇 高級套用
第11章 存儲過程 186
視頻講解:28分鐘
11.1 存儲過程概述 186
11.1.1 存儲過程的概念 186
11.1.2 存儲過程的優點 187
11.2 創建存儲過程 187
11.2.1 使用嚮導創建存儲過程 187
11.2.2 使用CREATE PROC語句創建存儲過程 188
11.3 管理存儲過程 189
11.3.1 執行存儲過程 190
11.3.2 查看存儲過程 191
11.3.3 修改存儲過程 192
11.3.4 重命名存儲過程 194
11.3.5 刪除存儲過程 196
11.4 小結 197
11.5 實踐與練習 197
第12章 觸發器 198
視頻講解:20分鐘
12.1 觸發器概述 198
12.1.1 觸發器的概念 198
12.1.2 觸發器的優點 199
12.1.3 觸發器的種類 199
12.2 創建觸發器 199
12.2.1 創建DML觸發器 200
12.2.2 創建DDL觸發器 201
12.2.3 創建登錄觸發器 202
12.3 管理觸發器 204
12.3.1 查看觸發器 204
12.3.2 修改觸發器 205
12.3.3 重命名觸發器 207
12.3.4 禁用和啟用觸發器 207
12.3.5 刪除觸發器 209
12.4 小結 211
12.5 實踐與練習 211
第13章 游標的使用 212
視頻講解:26分鐘
13.1 游標的概述 212
13.1.1 游標的實現 213
13.1.2 游標的類型 213
13.2 游標的基本操作 214
13.2.1 聲明游標 214
13.2.2 打開游標 217
13.2.3 讀取游標中的數據 217
13.2.4 關閉游標 219
13.2.5 釋放游標 219
13.3 使用系統過程查看游標 220
13.3.1 sp_cursor_list 220
13.3.2 sp_describe_cursor 222
13.4 小結 223
13.5 實踐與練習 223
第14章 索引與數據完整性 224
視頻講解:57分鐘
14.1 索引的概念 224
14.2 索引的優缺點 225
14.2.1 索引的優點 225
14.2.2 索引的缺點 225
14.3 索引的分類 225
14.3.1 聚集索引 225
14.3.2 非聚集索引 226
14.4 索引的操作 226
14.4.1 索引的創建 227
14.4.2 查看索引信息 229
14.4.3 索引的修改 231
14.4.4 索引的刪除 231
14.4.5 設定索引的選項 233
14.5 索引的分析與維護 235
14.5.1 索引的分析 235
14.5.2 索引的維護 237
14.6 全文索引 239
14.6.1 使用可視化管理工具啟用全文索引 240
14.6.2 使用SQL語句啟用全文索引 241
14.6.3 使用SQL語句刪除全文索引 244
14.6.4 全文目錄的維護 244
14.7 數據完整性 246
14.7.1 域完整性 246
14.7.2 實體完整性 247
14.7.3 引用完整性 248
14.7.4 用戶定義完整性 249
14.8 小結 249
14.9 實踐與練習 249
第15章 SQL中的事務 250
視頻講解:29分鐘
15.1 事務的概念 250
15.2 顯式事務與隱式事務 251
15.2.1 顯式事務 251
15.2.2 隱式事務 252
15.2.3 事務的COMMIT和ROLLBACK 253
15.3 使用事務 253
15.3.1 開始事務 253
15.3.2 結束事務 254
15.3.3 回滾事務 254
15.3.4 事務的工作機制 255
15.3.5 自動提交事務 256
15.3.6 事務的並發問題 256
15.3.7 事務的隔離級別 257
15.4 鎖 260
15.4.1 SQL Server鎖機制 260
15.4.2 鎖模式 260
15.4.3 鎖的粒度 261
15.4.4 查看鎖 262
15.4.5 死鎖 263
15.5 分散式事務處理 264
15.5.1 分散式事務簡介 264
15.5.2 創建分散式事務 264
15.5.3 分散式事務處理協調器 265
15.6 小結 265
15.7 實踐與練習 265
第16章 維護SQL Server資料庫 266
視頻講解:34分鐘
16.1 脫機與在線上資料庫 266
16.1.1 脫機資料庫 266
16.1.2 在線上資料庫 267
16.2 分離和附加資料庫 267
16.2.1 分離資料庫 268
16.2.2 附加資料庫 268
16.3 導入和導出數據表 269
16.3.1 導入SQL Server數據表 269
16.3.2 導入其他數據源的數據 272
16.3.3 導出SQL Server數據表 275
16.4 備份和恢複數據庫 277
16.4.1 備份類型 277
16.4.2 恢復模式 278
16.4.3 備份資料庫 278
16.4.4 恢複數據庫 280
16.5 收縮資料庫和檔案 281
16.5.1 自動收縮資料庫 281
16.5.2 手動收縮資料庫 282
16.6 生成與執行SQL腳本 283
16.6.1 將資料庫生成SQL腳本 283
16.6.2 將數據表生成SQL腳本 284
16.6.3 執行SQL腳本 285
16.7 小結 286
16.8 實踐與練習 286
第17章 資料庫的安全機制 287
視頻講解:30分鐘
17.1 資料庫安全概述 287
17.2 資料庫登錄管理 287
17.2.1 選擇驗證模式 287
17.2.2 管理登錄賬號 288
17.2.3 更改登錄驗證方式 296
17.2.4 設定密碼 297
17.3 用戶及許可權管理 298
17.3.1 創建與刪除資料庫用戶 298
17.3.2 設定伺服器角色許可權 299
17.4 小結 300
17.5 實踐與練習 300
第4篇 項目實戰
第18章 Visual C++ + SQL Server實現酒店客房管理系統 302
視頻講解:30分鐘
18.1 開發背景 302
18.2 需求分析 303
18.3 系統設計 303
18.3.1 系統目標 303
18.3.2 系統功能結構 303
18.3.3 系統預覽 304
18.3.4 業務流程圖 305
18.3.5 資料庫設計 306
18.4 主窗體設計 307
18.4.1 主窗體概述 307
18.4.2 主窗體實現過程 307
18.5 登錄模組設計 312
18.5.1 登錄模組概述 312
18.5.2 登錄模組技術分析 313
18.5.3 登錄模組設計過程 313
18.6 客房預訂模組設計 318
18.6.1 客房預訂模組概述 318
18.6.2 客房預訂模組技術分析 318
18.6.3 客房預訂模組實現過程 318
18.7 追加押金模組設計 323
18.7.1 追加押金模組概述 323
18.7.2 追加押金模組技術分析 323
18.7.3 追加押金模組實現過程 324
18.8 調房登記模組設計 329
18.8.1 調房登記模組概述 329
18.8.2 調房登記模組技術分析 329
18.8.3 調房登記模組實現過程 329
18.9 客房銷售報表模組設計 335
18.9.1 客房銷售報表模組概述 335
18.9.2 客房銷售報表模組技術分析 335
18.9.3 客房銷售報表模組實現過程 336
18.10 小結 345
第19章 C# + SQL Server實現企業人事管理系統 346
視頻講解:90分鐘
19.1 系統概述 346
19.2 系統設計 347
19.2.1 系統目標 347
19.2.2 系統功能結構 347
19.2.3 系統業務流程圖 348
19.3 系統運行環境 348
19.4 資料庫與數據表設計 349
19.4.1 資料庫分析 349
19.4.2 主要數據表結構 349
19.4.3 數據表邏輯關係 353
19.5 創建項目 355
19.6 公共類設計 356
19.6.1 MyMeans公共類 356
19.6.2 MyModule公共類 359
19.7 登錄模組設計 373
19.7.1 設計登錄窗體 373
19.7.2 按Enter鍵時移動滑鼠焦點 374
19.7.3 登錄功能的實現 374
19.8 系統主窗體設計 375
19.8.1 設計選單欄 375
19.8.2 設計工具列 376
19.8.3 設計導航選單 377
19.8.4 設計狀態欄 378
19.9 人事檔案管理模組設計 379
19.9.1 設計人事檔案管理窗體 379
19.9.2 添加/修改人事檔案信息 381
19.9.3 刪除人事檔案信息 384
19.9.4 單條件查詢人事檔案信息 384
19.9.5 逐條查看人事檔案信息 386
19.9.6 將人事檔案信息導出為Word文檔 388
19.9.7 將人事檔案信息導出為Excel表格 392
19.10 用戶設定模組設計 397
19.10.1 設計用戶設定窗體 397
19.10.2 添加/修改用戶信息 398
19.10.3 刪除用戶基本信息 399
19.10.4 設定用戶操作許可權 400
19.11 資料庫維護模組設計 401
19.11.1 設計資料庫維護窗體 401
19.11.2 備份資料庫 401
19.11.3 還原資料庫 402
19.12 小結 403
第20章 Java + SQL Server實現學生成績管理系統 404
視頻講解:54分鐘
20.1 系統概述 404
20.2 系統分析 405
20.2.1 需求分析 405
20.2.2 可行性研究 405
20.3 系統設計 405
20.3.1 系統目標 405
20.3.2 系統功能結構 405
20.3.3 系統預覽 406
20.3.4 構建開發環境 407
20.3.5 資料夾組織結構 407
20.4 資料庫設計 408
20.4.1 資料庫分析 408
20.4.2 資料庫概念設計 408
20.4.3 資料庫邏輯結構設計 408
20.5 公共模組設計 410
20.5.1 各種實體類的編寫 410
20.5.2 運算元據庫公共類的編寫 412
20.6 系統用戶登錄模組設計 417
20.6.1 系統用戶登錄模組概述 417
20.6.2 系統用戶登錄模組技術分析 417
20.6.3 系統用戶登錄模組實現過程 418
20.7 主窗體模組設計 419
20.7.1 主窗體模組概述 419
20.7.2 主窗體模組技術分析 420
20.7.3 主窗體模組實現過程 420
20.8 班級信息設定模組設計 423
20.8.1 班級信息設定模組概述 423
20.8.2 班級信息設定模組技術分析 424
20.8.3 班級信息設定模組實現過程 424
20.9 學生基本信息管理模組設計 427
20.9.1 學生基本信息管理模組概述 427
20.9.2 學生基本信息管理模組技術分析 427
20.9.3 學生基本信息管理模組實現過程 428
20.10 考試成績信息管理模組設計 432
20.10.1 考試成績信息管理模組概述 432
20.10.2 考試成績信息管理模組技術分析 432
20.10.3 考試成績信息管理模組實現過程 433
20.11 基本信息數據查詢模組設計 437
20.11.1 基本信息數據查詢模組概述 437
20.11.2 基本信息數據查詢模組技術分析 438
20.11.3 基本信息數據查詢模組實現過程 438
20.12 考試成績班級明細查詢模組設計 440
20.12.1 考試成績班級明細查詢模組概述 440
20.12.2 考試成績班級明細查詢模組技術分析 441
20.12.3 考試成績班級明細查詢模組實現過程 441
20.13 小結 443