內容簡介
本教程面向資料庫管理人員和資料庫開發人員,內容翔實、結構合理、示例豐富、語言簡潔流暢。適合作為高等院校計算機軟體、信息系統、電子商務等相關專業的資料庫課程教材,同時也適合作為各種資料庫技術培訓班的教材以及資料庫開發人員的參考資料。
目錄
第1章 SQL Server 2005概述和安裝
1.1 為什麼選擇SQL Server 2005 1
1.2 SQL Server的發展 3
1.3 硬體要求 4
1.3.1 CPU 4
1.3.2 記憶體 4
1.3.3 硬碟空間 5
1.3.4作業系統要求 5
1.4 示例 5
1.5 安裝 6
1.6 標準安裝 6
1.7 安全性 13
1.7.1 服務賬戶 13
1.7.2 身份驗證模式 13
1.7.3 sa登錄 17
1.8 小結 18
第2章 SSMS
2.1 SSMS概覽 19
2.2 SSMS的選項 26
2.2.1 “環境”節點 26
2.2.2 “原始碼管理”節點 28
2.2.3 “文本編輯器”節點 29
2.2.4 “查詢執行”節點 31
2.2.5 “查詢結果”節點 33
2.3 查詢編輯器35
2.4 外圍套用配置器工具 37
2.5 小結 40
第3章 設計和創建資料庫
3.1 資料庫的定義 42
3.2 SQL Server中的資料庫 43
3.2.1 master 43
3.2.2 tempdb 44
3.2.3 model 45
3.2.4 msdb 45
3.2.5AdventureWorks/AdventureWorks DW 45
3.3 決定資料庫系統類型 46
3.3.1 OLTP 46
3.3.2 OLAP 47
3.3.3 示例系統類型選擇 47
3.4 收集數據 48
3.5 決定要存儲在資料庫中的信息 49
3.5.1 金融產品 50
3.5.2 客戶 51
3.5.3 客戶地址 51
3.5.4 股票 51
3.5.5 交易 51
3.6 外部信息和忽略的信息 52
3.7 建立關係 52
3.7.1 使用鍵 52
3.7.2 創建關係 54
3.7.3 更多關於外鍵 57
3.8 規範化 58
3.8.1 每一個實體應該有唯一的標識符59
3.8.2 只存儲與實體直接有關的信息 59
3.8.3 避免重複值或重複列 59
3.8.4 範式 60
3.8.5 非規範化 61
3.9 創建示例資料庫 62
3.9.1 在SSMS中創建資料庫 62
3.9.2 在SSMS中刪除資料庫 74
3.9.3 在查詢編輯器中創建資料庫 77
3.10 小結 79
第4章 安全
4.1 登錄名 80
4.2 角色 88
4.2.1 固定伺服器角色 88
4.2.2 資料庫角色 90
4.2.3應用程式角色 90
4.3 架構 93
4.4 在解決方案中進行下去之前 95
4.5 小結 99
第5章 定義表
5.1 什麼是表 100
5.2 定義表:SSMS 101
5.2.1 表中的不同數據類型 102
5.2.2 程式中的不同數據類型 106
5.3 列不僅僅是簡單的數據倉庫 106
5.3.1 默認值 106
5.3.2 生成IDENTITY值 107
5.3.3 NULL值的使用 107
5.3.4 為什麼要定義允許NULL值的列 108
5.4 在SQL Server中存儲圖像和大型文本 108
5.5 在SSMS中創建表 109
5.6 通過查詢編輯器定義表 113
5.7 定義表:使用模板 115
5.8 創建模板和修改模板 118
5.9 ALTER TABLE命令 119
5.10 定義其餘的表 121
5.11 設定主鍵 122
5.12 創建關係 123
5.12.1 在創建時檢查現有數據 125
5.12.2 強制外鍵約束 126
5.12.3 刪除規則/更新規則 126
5.13 使用SQL語句ALTER TABLE 126
5.14 小結 128
第6章 創建索引和資料庫關係圖
6.1 什麼是索引 129
6.1.1 索引類型 130
6.1.2 唯一性 132
6.2 確定是什麼導致了好的索引 132
6.2.1 使用低維護列 132
6.2.2 主鍵和外鍵 133
6.2.3 找到指定記錄 133
6.2.4 使用覆蓋索引 133
6.2.5 查找信息範圍 134
6.2.6 保持數據的排序 134
6.3 確定是什麼導致了壞的索引 135
6.3.1 使用了不合適的列 135
6.3.2 選擇了不合適的數據 135
6.3.3 包含了過多的列 135
6.3.4 表中包含的記錄過少 135
6.4 針對性能對索引進行回顧 136
6.5 創建索引 136
6.5.1 在表設計器中創建索引 136
6.5.2 索引和統計信息 139
6.5.3CREATE INDEX語法 140
6.5.4 在查詢編輯器中創建索引:模板 142
6.5.5 在查詢編輯器中創建索引:SQL代碼 145
6.6 刪除索引 148
6.7 在查詢編輯器中修改索引 149
6.8 為資料庫生成關係圖 151
6.8.1 資料庫關係圖基礎 151
6.8.2 SQL Server資料庫關係圖工具 152
6.8.3 默認資料庫關係圖 153
6.8.4 資料庫關係圖工具條 155
6.9 小結 157
第7章 資料庫的備份、還原和維護
7.1 事務日誌 159
7.2 備份策略 161
7.3 當可能發生錯誤 162
7.4 讓資料庫脫機 163
7.5 備份數據 164
7.5.1 使用T-SQL備份資料庫 169
7.5.2 使用T-SQL進行日誌備份 175
7.6 還原資料庫 178
7.6.1 使用SSMS還原數據 178
7.6.2 使用T-SQL進行還原 181
7.7 分離和附加資料庫 185
7.7.1 使用SSMS進行分離和附加操作 185
7.7.2 使用T-SQL進行分離和附加操作 190
7.8 為資料庫生成SQL腳本192
7.9 維護資料庫 198
7.10 小結 207
第8章 運算元據
8.1 T-SQL的INSERT命令的語法 209
8.2 SQL命令INSERT 209
8.2.1 默認值 212
8.2.2 使用NULL值 212
8.3 DBCC CHECKIDENT 216
8.4 列約束 217
8.5 同時處理多條記錄 222
8.6 檢索數據 224
8.7 使用SSMS檢索數據 224
8.8 SELECT語句 226
8.9 指定列 228
8.10 第一批搜尋 229
8.11 改變輸出的顯示 231
8.12 限制搜尋:WHERE的使用 232
8.12.1 SET ROWCOUNT n 235
8.12.2 TOP n 236
8.12.3 TOP n PERCENT 237
8.13 字元串函式 237
8.14 順序!順序! 239
8.15 LIKE運算符 240
8.16 生成數據:SELECT INTO 242
8.17 誰能添加、刪除或選取數據 244
8.18 更新數據 248
8.18.1 UPDATE命令 248
8.18.2 在查詢編輯器中更新數據 250
8.19 事務 253
8.19.1 BEGIN TRAN 254
8.19.2 COMMIT TRAN 254
8.19.3 ROLLBACK TRAN 255
8.19.4 鎖定數據 255
8.19.5 更新數據:使用事務 255
8.19.6 嵌套事務 257
8.20 刪除數據 259
8.20.1 DELETE的語法 259
8.20.2 使用DELETE語句 259
8.21 截斷表(刪除表中的所有行) 261
8.22 刪除表 262
8.23 小結 263
第9章 構建視圖
9.1 什麼是視圖 265
9.2 針對安全而使用查詢 265
9.3 加密視圖定義 266
9.4 創建視圖:SSMS 267
9.5 使用視圖來創建視圖 272
9.6 CREATE VIEW語法 277
9.7 創建視圖:查詢編輯器窗格 278
9.8 創建視圖:SCHEMABINDING 279
9.9 為視圖設定索引 282
9.10 小結 285
第10章 存儲過程
10.1 什麼是存儲過程 286
10.2CREATE PROCEDURE語法 287
10.3 返回一系列記錄 290
10.4 創建存儲過程:SSMS 290
10.5 執行存儲過程的不同方法 294
10.5.1 不使用EXEC 294
10.5.2 使用EXEC 294
10.6 使用RETURN 295
10.7 控制流程 299
10.7.1 IF...ELSE 299
10.7.2 BEGIN...END 300
10.7.3 WHILE...BREAK語句 300
10.7.4 CASE語句 302
10.8 綜合套用 305
10.9 小結 307
第11章 T-SQL基礎
11.1 使用多個表 308
11.2 變數 313
11.3 臨時表 315
11.4 聚合 318
11.4.1 COUNT/COUNT_BIG 318
11.4.2 SUM 319
11.4.3 MAX/MIN 319
11.4.4 AVG 320
11.5 GROUP BY 320
11.6 HAVING 322
11.7 獨特值 323
11.8 函式 324
11.8.1 日期和時間函式 324
11.8.2 字元串函式 327
11.8.3系統函式333
11.9raiserror336
11.10 錯誤處理 340
11.11 @@ERROR 340
11.12 TRY...CATCH 342
11.13 小結 345
第12章 高級T-SQL
12.1 子查詢 346
12.1.1 IN 348
12.1.2 EXISTS 349
12.2apply運算符350
12.2.1 CROSS APPLY 350
12.2.2 OUTER APPLY 351
12.3公用表表達式352
12.4 透視數據 355
12.4.1 PIVOT 355
12.4.2 UNPIVOT 357
12.5 排名函式 358
12.5.1 ROW_NUMBER 359
12.5.2 RANK 361
12.5.3 DENSE_RANK 362
12.5.4ntile363
12.6 使用MAX數據類型 363
12.7 小結 367
第13章 觸發器
13.1 什麼是觸發器 368
13.2 DML觸發器 369
13.3 針對DML觸發器的CREATE TRIGGER語法 370
13.4 為什麼不使用約束 372
13.5 對邏輯表進行刪除和插入 372
13.6 創建DML FOR觸發器 373
13.7 檢查特定的列 377
13.7.1 使用UPDATE() 377
13.7.2 使用COLUMNS_UPDATED() 381
13.8 DDL觸發器 384
13.9 刪除DDL觸發器 387
13.10 EVENTDATA() 387
13.11 小結 390
第14章 SQL Server Reporting Service
14.1 什麼是reporting services 391
14.2 Reporting Services架構:遠觀 392
14.3 Reporting Services架構:更近的觀察 393
14.3.1 應用程式層 394
14.3.2 伺服器層 395
14.3.3 數據層 397
14.4 使用報表嚮導構建第一個報表 398
14.5 構建即席報表 401
14.5.1 數據相關的元素 402
14.5.2 報表項 402
14.5.3 報表結構 403
14.6 小結 409