內容簡介
本書是一本淺顯易懂卻十分地道的指南,書中介紹了SQLServer2005的所有可用的強大功能。包括:安裝SQLServer2005,使系統管理任務自動運行,執行簡單的和複雜的資料庫查詢,以及使用健壯分析、商務智慧型和報表工具。本書還介紹了故障檢修、數據分區、複製和查詢最佳化。
目錄
第Ⅰ部分SQLServer的基本概念
第1章資料庫系統和SQLServer 3
1.1資料庫系統概述 5
1.1.1多種不同的用戶界面 6
1.1.2物理數據獨立性 6
1.1.3邏輯數據獨立性 6
1.1.4查詢最佳化 7
1.1.6並發控制 7
1.1.7備份與恢復 7
1.1.8安全性和授權 8
1.2關係資料庫系統 8
1.3SQL:一種關係資料庫語言 11
1.4.1範式 13
1.4.2實體-關係(ER)模型 15
1.5小結 17
1.6MicrosoftSQLServer概述 18
1.7練習 18
第2章SQLServerManagementStudio 21
2.1SQLServer程式組和BooksOnline 22
2.2SQLServerManagementStudio 23
2.2.1通過SQLServerDatabaseEngine使用ManagementStudio 26
2.2.2使用ObjectExplorer管理資料庫 29
2.2.3使用SQLServerManagementStudio創建動作 35
2.3小結 39
2.4練習 40
第Ⅱ部分Transact-SQL語言
第3章SQL組件 43
3.1SQL的基本對象 44
3.1.1注釋 45
3.1.2標識符 46
3.1.3保留字 46
3.2數據類型 46
3.2.1數值型 46
3.2.2串型 47
3.2.3指定日期和時間 50
3.2.4派生數據類型 51
3.2.5混雜型 51
3.2.6用戶自定義型 52
3.3謂詞 52
3.4聚集函式 53
3.5標量函式 53
3.5.1數值函式 54
3.5.2日期函式 55
3.5.3串函式 56
3.5.4文本/圖像函式 58
3.5.5系統函式 58
3.6標量運算符 60
3.7空值 62
3.8小結 63
3.9練習 63
第4章數據定義語言 65
4.1創建資料庫對象 66
4.1.1創建資料庫 66
4.1.2CREATETABLE:一個基本的格式 69
4.1.3CREATETABLE:增強型格式 71
4.1.4CREATETABLE和聲明性完整性約束 72
4.1.5參照約束 76
4.1.6創建其他資料庫對象 80
4.1.7完整性約束和域 81
4.2修改資料庫對象 86
4.2.1修改資料庫 86
4.2.2修改表:基本格式 87
4.2.3修改表:增強格式 88
4.3刪除資料庫對象 91
4.4小結 92
4.5練習 92
第5章簡單查詢 95
5.1SELECT語句:基本格式 96
5.2WHERE子句 98
5.2.1布爾運算符 100
5.2.2IN和BETWEEN運算符 104
5.2.3涉及NULL值的查詢 108
5.2.4LIKE運算符 109
5.3簡單子查詢 113
5.3.2子查詢與IN運算符 115
5.3.3ANY以及ALL運算符 116
5.3.4EXISTS函式 118
5.3.5FROM子句中的查詢 119
5.4GROUPBY子句 119
5.5聚集函式 121
5.5.1便利聚集 121
5.5.2統計聚集 127
5.5.3超聚集(運算符CUBE和ROLLUP) 128
5.5.4用戶自定義的聚集函式 128
5.6HAVING子句 128
5.7ORDERBY子句 129
5.8SELECT語句和IDENTITY屬性 132
5.9集合運算符 133
5.11COMPUTE子句 139
5.12臨時表 142
5.13計算列 143
5.14小結 144
5.15練習 144
第6章複雜查詢 147
6.1連線運算符 148
6.1.1兩種實現連線的語法格式 148
6.1.2等值連線 149
6.1.3笛卡爾積 152
6.1.4自然連線 154
6.1.5theta連線 156
6.1.6多個表的連線 157
6.1.7把某個表與其自身連線 158
6.1.8外部連線 160
6.2相關子查詢 163
6.3連線查詢和子查詢的優點 168
6.3.1子查詢的優點 168
6.3.2連線的優點 169
6.4通用表表達式 169
6.4.1CTE和非遞歸查詢 170
6.4.2通用表表達式和遞歸查詢 172
6.5小結 176
6.6練習 176
第7章對表中內容的修改 179
7.1INSERT語句 180
7.1.1插入一行 180
7.1.2插入多行 182
7.2UPDATE語句 183
7.3DELETE語句 186
7.4小結 188
7.5練習 188
8.1SQL擴展 190
8.1.1語句塊 190
8.1.2IF語句 190
8.1.3WHILE語句 191
8.1.4局部變數 192
8.1.5其他過程語句 193
8.1.6用TRY和CATCH語句處理事件 194
8.2存儲過程 196
8.2.1存儲過程的創建與執行 197
8.2.2系統存儲過程 201
8.2.3存儲過程和CLR 201
8.3用戶自定義函式 205
8.3.1用戶自定義函式的創建和執行 205
8.3.2用戶自定義函式和CLR 209
8.4小結 210
8.5練習 211
第9章索引和查詢最佳化 213
9.1索引 214
9.1.1群集索引和非群集索引 215
9.1.2索引以及相關Transact-SQL語句 217
9.1.3編輯索引信息 222
9.1.4索引和鍵 223
9.1.5創建索引的準則 223
9.2提高效率的通用標準 225
9.2.1連線與相關子查詢 225
9.2.2不完整語句 226
9.2.3LIKE運算符 227
9.2.4用於查詢最佳化的Transact-SQL語句 227
9.3.1最佳化器統計信息 230
9.3.2連線操作的實現 231
9.3.3最佳化器提示 232
9.4DBCC命令和索引 242
9.5小結 242
9.6練習 242
第10章視圖 245
10.1DDL語句和視圖 246
10.1.1創建視圖 246
10.1.2修改和刪除視圖 250
10.2DML語句和視圖 252
10.2.1視圖檢索 252
10.2.2INSERT語句和視圖 253
10.2.3UPDATE語句和視圖 255
10.2.4DELETE語句和視圖 257
10.3索引視圖 257
10.3.1創建索引視圖 258
10.3.2索引視圖的好處 260
10.3.3索引視圖的使用 261
10.4小結 263
10.5練習 263
第11章系統目錄 265
11.1系統表 266
11.1.1Sysobjects 266
11.1.2Syscolumns 267
11.1.3Sysindexes 267
11.1.4Sysusers 267
11.1.5Sysdatabases 268
11.1.6Sysdepends 268
11.1.7Sysconstraints 268
11.2目錄視圖 269
11.2.1Sys_objects 270
11.2.2Sys.columns 270
11.2.3Sys.database_principals 270
11.3目錄視圖的查詢 271
11.4訪問系統信息的其他方式 273
11.4.1系統過程 273
11.4.2系統函式 275
11.4.3屬性函式 276
11.4.4信息模式 277
11.5小結 280
11.6練習 280
第12章SQLServer安全性 281
12.1身份驗證 282
12.1.1SQLServer加密策略及機制 283
12.1.2使用DDL設定SQLServer 284
12.1.3使用系統過程來設定SQLServer的安全性 286
12.1.4與登錄有關的系統過程 286
12.2模式 287
12.2.1用戶和模式分離 288
12.2.2與模式有關的DDL語句 288
12.3資料庫安全 291
12.3.1使用DDL創建資料庫用戶賬戶 291
12.3.2使用系統過程設定資料庫用戶賬戶 292
12.3.3默認的資料庫模式 293
12.4角色 294
12.4.1固定伺服器 294
12.4.2固定伺服器角色及其許可權 295
12.4.3固定資料庫角色 297
12.4.4固定資料庫角色及其許可權 298
12.4.5應用程式角色 300
12.4.6用戶自定義的資料庫角色 302
12.5授權 303
12.5.1GRANT語句 304
12.5.2DENY語句 308
12.5.3REVOKE語句 310
12.6視圖和數據訪問 310
12.7存儲過程和數據訪問 312
12.8小結 312
12.9練習 313
第13章觸發器 315
13.1引言 316
13.2觸發器的工作原理 316
13.2.1AFTER觸發器的套用領域 318
13.2.2INSTEADOF觸發器的套用領域 321
13.2.3第一個和最後一個觸發器 322
13.2.4DDL觸發器 323
13.3觸發器和CLR 324
13.4OUTPUT子句 328
13.5修改觸發器的結構 329
13.6小結 330
13.7練習 330
第14章事務 331
14.1引言 332
14.2Transact-SQL語句和事務 333
14.3鎖 336
14.3.1鎖定粒度 337
14.3.2鎖的種類 337
14.3.3SELECT語句和鎖 340
14.4隔離級別 341
14.5死鎖 344
14.6小結 345
14.7練習 345
第15章SQLServer系統環境 347
15.1磁碟存儲器 348
15.1.1數據頁 349
15.1.2大對象 351
15.1.3索引頁 351
15.2系統資料庫 351
15.3實用程式 352
15.3.1bcp實用程式 352
15.3.2osql實用程式 354
15.3.3sqlcmd實用程式 355
15.4SQLServer的實例 357
15.5Unicode 358
15.6SQLServer體系結構 359
15.6.1多處理器硬體體系結構 359
15.6.2SQLServer的多執行緒體系結構 360
15.7小結 362
15.8練習 362
第Ⅲ部分SQLServer:系統管理
第16章系統管理概述 365
16.1管理工具 366
16.1.1MSSQLServer2005程式組 367
16.1.2SQLComputerManager 367
16.1.3動態管理視圖 368
16.2系統管理員 369
16.3小結 369
第17章規劃安裝並安裝SQLServer 371
17.1規劃安裝 372
17.1.1SQLServer的用途 372
17.1.2硬體和軟體要求 373
17.1.3SQLServer的版本 374
17.1.4安裝建議 374
17.2安裝SQLServer 375
17.3安裝後配置SQLServer 381
17.3.1創建伺服器組並註冊伺服器 381
17.3.2設定伺服器選項 381
17.4啟動和停止SQLServer的實例 382
17.5小結 383
第18章管理資料庫和資料庫檔案 385
18.1管理檔案組 386
18.2管理資料庫 387
18.2.1創建資料庫 388
18.2.2查看和修改資料庫選項 389
18.2.3修改資料庫 391
18.3管理事務日誌 393
18.4小結 394
18.5練習 394
第19章管理安全性 395
19.1引言 396
19.1.1實現安全模式 396
19.1.2管理SQLServer登錄 397
19.2資料庫安全許可權 398
19.3管理許可權 402
19.4小結 403
19.5練習 404
第20章備份和恢復 405
20.1引言 406
20.1.1軟體和硬體故障 406
20.1.2事務日誌 407
20.2備份 407
20.2.1完全資料庫備份 407
20.2.2差異備份 408
20.2.3事務日誌備份 408
20.2.4資料庫檔案備份 409
20.3執行備份 409
20.3.1使用ManagementStudio進行備份 410
20.3.2使用Transact-SQL語句進行備份 413
20.3.3備份哪些資料庫 415
20.3.4最小化系統停機時間 416
20.3.5高可用性 419
20.4恢復 420
20.4.1自動恢復 420
20.4.2手工恢復 421
20.4.3恢復模型 428
20.4.4恢復到標記處 430
20.5小結 431
20.6練習 431
第21章自動化系統管理任務 433
21.1引言 434
21.2SQLServerAgent 435
21.3創建作業和操作員 435
21.3.1作業步驟 436
21.3.2使用SQLServerManagementStudio創建作業 436
21.3.3建立作業時間表 438
21.3.4創建要通知的操作員 439
21.3.5查看作業歷史日誌 440
21.4警報 441
21.4.1錯誤訊息 442
21.4.2SQLServer錯誤日誌 443
21.4.3事件日誌 443
21.4.4定義警報來處理SQLServer錯誤 443
21.4.5定義警報來處理用戶定義的錯誤 446
21.5小結 448
21.6練習 448
第22章性能和調 449
22.1引言 450
22.2影響性能的因素 450
22.2.1資料庫應用程式和性能 450
22.2.3系統資源和性能 453
22.3監視工具 458
22.3.1應用程式性能工具 458
22.3.2SQLSever特有的監視 462
22.3.3監視系統資源的工具 464
22.4使用正確的工具 466
22.4.1SQLServerProfiler 467
22.4.2DatabaseEngineTuningAdvisor 467
22.5小結 472
第23章數據分區 475
23.1引言 476
23.2創建分區表的步驟 477
23.2.1設定分區目標 477
23.2.2確定分區鍵和分區數 478
23.2.3為每個分區創建檔案組 478
23.2.4創建分區函式和分區模式 479
23.2.5並置對象 482
23.3對表和索引進行分區的準則 482
23.4小結 482
第24章數據複製 485
24.1分散式數據 486
24.2概述SQLServer複製 487
24.2.1發布者、分發者和訂閱者 488
24.2.2發布和項目 489
24.2.3複製類型 490
24.2.4複製模型 492
24.3管理複製 494
24.3.1配置分發伺服器和發布伺服器 494
24.3.2設定發布 495
24.3.3設定訂閱伺服器 496
24.4小結 498
24.5練習 498
第Ⅳ部分Microsoft分析服務
第25章數據倉庫入門 501
25.1.1在線上事務處理 502
25.1.2數據倉庫系統 503
25.2數據倉庫和數據集市 504
25.3數據倉庫設計 506
25.4立方和存儲模式 508
25.5聚集 510
25.6數據訪問 512
25.7小結 512
25.8練習 512
第26章MicrosoftAnalysisServices 515
26.1BIDevelopmentStudio 517
26.2AnalysisServices和立方 521
26.2.1創建立方 522
26.2.2設計存儲器聚集和處理立方 523
26.2.3瀏覽立方 526
26.3小結 527
第27章商務智慧型和SQL 529
27.1Transact-SQL中的OLAP擴展 530
27.1.2ROLLUP運算符 533
27.1.3排序函式 535
27.1.4TOPn子句 541
27.1.5PIVOT和UNPIVOT運算符 543
27.2小結 544
第28章Microsoft報表服務 545
28.1引言 546
28.1.1ReportManager 546
28.1.2ReportServer 546
28.1.3ReportServer資料庫 547
28.2創建報表 547
28.2.1Report嚮導 548
28.2.2參數化報表 554
28.3處理和管理報表 555
28.4訪問和交付報表 556
28.4.1隨需應變的報表 557
28.4.2報表訂閱 558
28.5小結 559
28.6練習 559
第Ⅴ部分XML支持
第29章XML概述 563
29.1WorldWideWeb 564
29.2XML和相關的語言 564
29.3文檔類型定義 568
29.4XML模式 570
29.5小結 571
第30章SQLServer2005和XML 573
30.1在關係資料庫中存儲XML 574
30.2XML數據類型 575
30.2.1索引XML列 577
30.2.2類型化和未類型化的XML 578
30.3用FORXML子句構建XML文檔 580
30.3.1RAW模式 581
30.3.2AUTO模式 582
30.3.3EXPLICIT模式 582
30.3.4PATH模式 584
30.3.5用不同的模式指定指令 585
30.4XML查詢語言 586
30.5小結 587