內容簡介
SQL Server 2012是微軟SQL Server資料庫中的最新版本,在該版本的資料庫產品中融入了更多商業智慧型的內容。本書也介紹了與商業智慧型有關的一些內容。
《21天學通SQL Server(第2版)》分5篇,共21章。第一篇主要講解資料庫的基礎知識,包括資料庫的概念及安裝。第二篇講解資料庫管理的常用知識,包括資料庫的管理、表的管理、確保數據的完整性及用戶許可權的設定等內容。第三篇主要講解SQL的編程,包括T-SQL語言、存儲過程及觸發器。第四篇講解與商業智慧型有關的內容,包括集成服務、報表服務和分析服務。第五篇是綜合案例篇,分別使用·NET和Java語言實現了與SQL Server 2012的連線,並完成了圖書管理系統和線上訂餐系統。
《21天學通SQL Server(第2版)》的特點就是圍繞使用SQL Server 2012開發項目所需的知識點進行了全面的講解,使讀者通過前面章節的學習,能夠熟練運算元據庫並完成本書後兩章的項目案例。《21天學通SQL Server(第2版)》適合所有學習資料庫的人員使用。
另外,為了幫助讀者比較直觀地學習,《21天學通SQL Server(第2版)》附贈了DVD光碟,內容包括多媒體視頻、電子教案(PPT)、實例原始碼等。
編輯推薦
“21天學編程系列”自2009年1月上市以來一直受到廣大讀者的青睞。該系列中的大部分圖書從一上市就登上了編程類圖書銷售排行榜的前列,很多大中專院校也將該系列中的一些圖書作為教材使用,目前這些圖書已經多次印刷、改版。可以說,“21天學編程系列”是自2009年以來國內原創計算機編程圖書最有影響力的品牌之一。
本書有何特色
1.細緻體貼的講解
為了讓讀者更快地上手,本書特別設計了適合初學者的學習方式,用準確的語言總結概念用直觀的圖示演示過程用詳細的注釋解釋代碼用形象的比方幫助記憶。
2.實用超值的DVD光碟
為了幫助讀者比較直觀地學習,本書附帶DVD光碟,內容包括多媒體視頻、電子教案(PPT)和實例原始碼等。
3.提供完善的技術支持
目錄
第一篇 SQL Server 2012基礎篇
第1章 學習資料庫的準備 1
1.1 認識資料庫 1
1.1.1 為什麼要使用資料庫 1
1.1.2 認識資料庫產品 1
1.2 了解資料庫對象 3
1.2.1 表 3
1.2.2 視圖 3
1.2.3 索引 4
1.2.4 存儲過程 4
1.2.5 觸發器 4
1.3 認識SQL語言 4
1.3.1 什麼是SQL 4
1.3.2 SQL語言的分類 5
1.4 繪製E-R圖設計資料庫 6
1.4.1 繪製E-R圖的基本要素 6
1.4.2 E-R圖繪製實例 8
1.5 小結 10
1.6 習題 10
第2章 資料庫的安裝 12
2.1 SQL Server 2012版本介紹 12
2.1.1 SQL Server 2012伺服器版 12
2.1.2 SQL Server 2012專業版 12
2.2 SQL Server 2012軟/硬體要求 13
2.3 安裝SQL Server 2012 14
2.3.1 自己動手安裝SQL Server 2012 14
2.3.2 安裝示例資料庫 23
2.4 認識SQL Server Management Studio(企業管理器) 25
2.4.1 訪問SQL Server Management Studio 25
2.4.2 SQL Server Management Studio選單簡介 27
2.4.3 查詢編輯器視窗 28
2.4.4 對象資源管理器 28
2.4.5 SQL編輯器 29
2.5 小結 30
2.6 習題 30
第二篇 SQL Server 2012管理篇
第3章 資料庫操作 31
3.1 在SSMS中創建資料庫 31
3.1.1 資料庫命名需要注意的問題 31
3.1.2 資料庫的所有者與許可權 32
3.1.3 創建資料庫 32
3.2 在SSMS中修改資料庫配置 36
3.2.1 使用SSMS修改資料庫配置的通用步驟 36
3.2.2 在SSMS中添加資料庫檔案 37
3.2.3 在SSMS中刪除資料庫檔案 37
3.2.4 修改資料庫的所有者 38
3.2.5 限制用戶的訪問 39
3.2.6 設定用戶對資料庫的使用許可權 40
3.2.7 修改資料庫名稱 43
3.3 使用SQL語句創建、修改、刪除資料庫 43
3.3.1 用CREATE DATABASE語句創建資料庫 43
3.3.2 用ALTER DATABASE語句修改資料庫 44
3.3.3 用DROP DATABASE語句刪除資料庫 46
3.4 分離與附加資料庫 47
3.4.1 分離資料庫 47
3.4.2 附加資料庫 48
3.5 編寫資料庫腳本檔案 50
3.6 綜合練習 51
3.7 小結 53
3.8 習題 53
第4章 數據表操作 55
4.1 認識數據類型 55
4.1.1 字元型數據類型 55
4.1.2 數字型數據類型 56
4.1.3 日期和時間數據類型 57
4.1.4 其他數據類型 57
4.2 創建數據表 58
4.2.1 創建數據表的語法 58
4.2.2 創建主鍵 59
4.2.3 使用SSMS創建表 60
4.2.4 創建標識列 62
4.3 修改表結構 64
4.3.1 修改表結構的語法 64
4.3.2 在SSMS中修改表結構 66
4.4 表的刪除、截斷與重命名 67
4.4.1 使用DROP TABLE語句刪除表 67
4.4.2 截斷表 68
4.4.3 重命名表 69
4.5 小結 70
4.6 習題 70
第5章 確保數據完整性 72
5.1 認識約束 72
5.1.1 什麼是約束 72
5.1.2 約束的類型 73
5.1.3 約束的語法 74
5.2 使用約束 75
5.2.1 利用SSMS創建主鍵約束 75
5.2.2 利用T-SQL增加主鍵約束 76
5.2.3 利用SSMS創建外鍵約束 77
5.2.4 利用T-SQL增加外鍵約束 79
5.2.5 利用SSMS工具創建CHECK約束 80
5.2.6 利用T-SQL增加CHECK約束 81
5.2.7 利用SSMS工具刪除約束 81
5.3 事務的使用 82
5.3.1 什麼是事務 82
5.3.2 事務的特性 82
5.3.3 事務的模式類型 83
5.3.4 事務的保存點 85
5.4 並發控制 86
5.4.1 並發訪問的問題 86
5.4.2 SQL Server中的鎖 87
5.4.3 查看活躍事務 88
5.4.4 事務隔離級別 90
5.4.5 事務隔離級別的設定 90
5.5 事務的阻塞 91
5.6 死鎖 93
5.6.1 死鎖的產生 93
5.6.2 處理死鎖 94
5.6.3 預防死鎖 95
5.7 索引 95
5.7.1 認識索引 95
5.7.2 索引的創建 96
5.7.3 索引的管理 99
5.8 小結 101
5.9 習題 102
第6章 用戶和許可權管理 103
6.1 用戶管理 103
6.1.1 創建使用Windows身份驗證的SQL Server登錄名 103
6.1.2 創建使用SQL Server身份驗證的SQL Server登錄名 105
6.1.3 利用Transact-SQL創建登錄賬號 106
6.1.4 創建資料庫用戶 108
6.1.5 使用Transact-SQL創建資料庫用戶 108
6.1.6 登錄賬號和資料庫用戶的關係 109
6.2 認識角色 110
6.2.1 角色的劃分 110
6.2.2 創建角色 113
6.2.3 給用戶授予角色 114
6.3 認識許可權 114
6.3.1 數據控制語言語法 115
6.3.2 給用戶授予許可權 116
6.4 架構 117
6.4.1 認識架構 117
6.4.2 架構的創建使用 118
6.4.3 架構的修改刪除 120
6.5 小結 120
6.6 習題 120
第7章 數據的導入/導出與備份/恢復 122
7.1 了解SQL Server導入和導出嚮導 122
7.2 導入/導出數據 123
7.2.1 數據的導出 124
7.2.2 數據的導入 128
7.3 數據備份 130
7.3.1 認識數據備份 130
7.3.2 使用SSMS工具備份資料庫 131
7.3.3 使用SSMS工具差異備份資料庫 132
7.4 恢複數據 133
7.4.1 認識恢複數據 133
7.4.2 如何修改恢復模式 134
7.4.3 使用SSMS恢複數據庫 135
7.5 小結 136
7.6 習題 136
第8章 使用SQL Server 2012自動化管理功能 137
8.1 認識SQL Server代理 137
8.1.1 什麼是SQL Server 代理 137
8.1.2 使用SQL Server 代理 138
8.2 認識作業 139
8.2.1 什麼是作業 139
8.2.2 創建作業 139
8.2.3 管理作業 143
8.3 認識警報 146
8.3.1 創建警報 146
8.3.2 在警報中觸發作業 147
8.3.3 管理警報 148
8.4 認識操作員 149
8.4.1 創建操作員 149
8.4.2 管理操作員 150
8.5 小結 151
8.6 習題 151
第9章 查詢數據 152
9.1 在SSMS中查看數據 152
9.2 使用簡單SELECT語句查詢數據 152
9.2.1 查詢表中所有的數據 152
9.2.2 查詢表中指定欄位的數據 154
9.2.3 去除查詢結果中的重複信息 155
9.2.4 根據現有列值計算新列值 155
9.2.5 命名新列 156
9.2.6 將查詢結果保存為新表 157
9.2.7 連線欄位 158
9.3 使用SELECT語句獲取滿足查詢條件的數據 159
9.3.1 指針與欄位變數的概念 160
9.3.2 條件表達式 160
9.3.3 WHERE子句用法 162
9.3.4 根據條件查詢數值數據 163
9.3.5 根據條件查詢字元數據 165
9.3.6 根據條件查詢日期數據 166
9.3.7 按範圍查詢數據 167
9.3.8 查詢NULL值 168
9.4 排序查詢數據 168
9.4.1 按單列排序 169
9.4.2 設定排序方向 169
9.4.3 按多列排序 170
9.4.4 按欄位位置排序 170
9.4.5 查詢前5行數據 171
9.4.6 WHERE與ORDER BY的結合使用 172
9.5 高級條件查詢 172
9.5.1 AND運算符 172
9.5.2 OR運算符 173
9.5.3 AND與OR的優先順序問題 174
9.5.4 NOT運算符 175
9.5.5 IN運算符 175
9.5.6 LIKE運算符與“%”通配符 177
9.5.7 “_”通配符的使用 179
9.5.8 “[]”通配符的使用 180
9.5.9 定義轉義字元 181
9.6 小結 181
9.7 習題 182
第10章 函式與分組查詢數據 183
10.1 系統函式 183
10.1.1 聚合函式 183
10.1.2 類型轉換函式 184
10.1.3 日期函式 186
10.1.4 數學函式 188
10.1.5 字元函式 189
10.1.6 其他幾個系統函式 190
10.2 分組查詢 194
10.2.1 將表內容按列分組 194
10.2.2 聚合函式與分組配合使用 196
10.2.3 查詢數據的直方圖 197
10.2.4 排序分組結果 198
10.2.5 反轉查詢結果 198
10.2.6 使用HAVING子句設定分組查詢條件 200
10.3 小結 201
10.4 習題 201
第11章 多表連線查詢和子查詢 203
11.1 連線查詢 203
11.1.1 使用無連線規則連線兩表 203
11.1.2 使用有連線規則連線兩表 204
11.1.3 使用多表連線查詢數據 205
11.1.4 使用表別名簡化語句 206
11.1.5 使用INNER JOIN連線查詢 206
11.1.6 連線查詢實例 207
11.2 高級連線查詢 209
11.2.1 自連線查詢 209
11.2.2 內連線查詢 211
11.2.3 左外連線查詢 213
11.2.4 右外連線查詢 213
11.2.5 全外連線查詢 214
11.2.6 交叉連線查詢 214
11.2.7 連線查詢中使用聚合函式 216
11.2.8 高級連線查詢實例 217
11.3 組合查詢 219
11.3.1 使用組合查詢 220
11.3.2 使用UNION的規則 221
11.3.3 使用UNION得到複雜的統計匯總樣式 222
11.3.4 排序組合查詢的結果 223
11.3.5 組合查詢的實例 223
11.4 子查詢 224
11.4.1 使用返回單值的子查詢 225
11.4.2 子查詢與聚合函式的配合使用 226
11.4.3 子查詢的實例 226
11.5 在SSMS查詢設計器中設計查詢 227
11.6 綜合練習 229
11.7 小結 230
11.8 習題 230
第12章 插入、更新和刪除數據 232
12.1 在SSMS中插入、更新和刪除數據 232
12.1.1 插入數據 232
12.1.2 更新數據 233
12.1.3 刪除數據 233
12.2 使用INSERT語句插入數據 234
12.2.1 插入完整的行 234
12.2.2 向日期時間型欄位插入數據 235
12.2.3 將數據插入到指定欄位 236
12.2.4 將查詢結果插入表 237
12.3 使用UPDATE語句更新數據 238
12.3.1 更新單個欄位的數據 238
12.3.2 更新多個欄位的數據 239
12.3.3 使用表連線更新數據 240
12.3.4 使用UPDATE語句刪除指定欄位的數據 240
12.4 使用DELETE語句刪除數據 241
12.4.1 使用DELETE語句刪除指定記錄 241
12.4.2 在DELETE語句中使用多表連線 242
12.4.3 使用DELETE語句刪除所有記錄 243
12.5 使用TRUNCATE語句刪除所有記錄 244
12.6 綜合練習 244
12.7 小結 246
12.8 習題 246
第13章 視圖 248
13.1 視圖基礎 248
13.2 視圖的創建 250
13.2.1 在SSMS中創建視圖 250
13.2.2 使用CREATE VIEW語句創建視圖 252
13.2.3 用別名命名視圖欄位 253
13.2.4 創建視圖時的注意事項 253
13.2.5 創建加密視圖 254
13.3 查看與修改視圖 255
13.3.1 查看視圖內容 255
13.3.2 在SSMS中修改視圖 256
13.3.3 用ALTER VIEW修改視圖 256
13.4 使用視圖操作表數據 257
13.4.1 在SSMS中操作視圖中的數據 257
13.4.2 使用INSERT語句插入數據 257
13.4.3 使用UPDATE語句更新數據 258
13.4.4 使用DELETE語句刪除數據 259
13.5 視圖的刪除 259
13.5.1 使用SSMS刪除視圖 259
13.5.2 使用DROP VIEW語句刪除視圖 259
13.6 小結 259
13.7 習題 259
第三篇 SQL編程篇
第14章 Transact-SQL語言 261
14.1 Transact-SQL概述 261
14.1.1 Transact-SQL與標準SQL 261
14.1.2 Transact-SQL的語法約定 261
14.2 加入注釋 262
14.2.1 加入單行注釋 262
14.2.2 加入多行注釋 262
14.3 Transact-SQL運算符 262
14.3.1 算術運算符 263
14.3.2 賦值運算符 263
14.3.3 位運算符 263
14.3.4 比較運算符 263
14.3.5 邏輯運算符 264
14.3.6 字元串連線運算符 264
14.3.7 一元運算符 264
14.3.8 運算符的優先權 264
14.4 Transact-SQL中的常量和變數 265
14.4.1 常量 265
14.4.2 局部變數 265
14.4.3 全局變數 267
14.5 流控制語句 268
14.5.1 BEGIN…END語句 268
14.5.2 IF…ELSE語句 269
14.5.3 WHILE語句 270
14.5.4 BREAK語句 270
14.5.5 COUNTINUE語句 271
14.5.6 WAITFOR語句 272
14.5.7 CASE語句 272
14.6 小結 273
14.7 習題 273
第15章 存儲過程和自定義函式 275
15.1 存儲過程簡介 275
15.1.1 什麼是存儲過程 275
15.1.2 存儲過程的優點 275
15.1.3 存儲過程的種類 276
15.2 創建和使用存儲過程 276
15.2.1 使用CREATE PROCEDURE語句創建存儲過程 276
15.2.2 使用EXECUTE語句調用存儲過程 278
15.2.3 創建帶輸入參數的存儲過程 278
15.2.4 給輸入參數設定默認值 279
15.2.5 創建帶輸出參數的存儲過程 281
15.2.6 創建有多條SQL語句的存儲過程 282
15.3 修改存儲過程 282
15.3.1 在SSMS中修改存儲過程 282
15.3.2 使用ALTER PROCEDURE語句修改存儲過程 283
15.4 刪除存儲過程 284
15.4.1 在SSMS中刪除存儲過程 284
15.4.2 使用DROP PROCEDURE語句刪除存儲過程 284
15.5 系統存儲過程 284
15.6 用戶自定義函式 285
15.6.1 創建使用標量函式 285
15.6.2 創建使用表值函式 286
15.6.3 查看與修改用戶自定義函式 288
15.6.4 刪除用戶自定義函式 288
15.7 游標的使用 288
15.7.1 什麼是游標 289
15.7.2 游標的創建 289
15.7.3 打開游標 290
15.7.4 得到游標中的數據 291
15.7.5 游標的關閉和遍歷 291
15.7.6 利用游標修改數據 293
15.8 小結 295
15.9 習題 295
第16章 觸發器 296
16.1 認識觸發器 296
16.1.1 什麼是觸發器 296
16.1.2 觸發器的作用 296
16.1.3 觸發器分類 297
16.2 創建觸發器 297
16.2.1 觸發器工作原理 297
16.2.2 觸發器語法結構 298
16.2.3 在SQL Server Management Studio中創建DML觸發器 299
16.2.4 使用T-SQL創建DML觸發器 301
16.2.5 觸發器內事件操作的判斷 303
16.2.6 觸發器執行的順序 304
16.2.7 使用T-SQL創建DDL觸發器 306
16.3 管理觸發器 308
16.3.1 利用SQL Server Management Studio修改觸發器 308
16.3.2 利用T-SQL修改觸發器 309
16.3.3 刪除觸發器 310
16.3.4 禁用觸發器 312
16.3.5 啟用觸發器 313
16.4 小結 313
16.5 習題 314
第四篇 SQL Server 2012商業智慧型篇
第17章 SQL Server 2012集成服務 315
17.1 SSIS簡介 315
17.2 創建Integration Services項目 315
17.2.1 新建Integration Services項目 315
17.2.2 添加和配置ADONET連線管理器 317
17.2.3 添加和配置OLE DB連線管理器 318
17.2.4 添加數據流源 318
17.2.5 添加並配置查找轉換 320
17.2.6 添加並配置數據流目標 321
17.2.7 添加數據查看器 322
17.3 部署包 322
17.3.1 包配置 323
17.3.2 使用部署實用工具部署包 323
17.3.3 執行部署後的包 326
17.4 小結 327
17.5 習題 327
第18章 SQL Server 2012報表服務 329
18.1 報表服務簡介 329
18.1.1 什麼是報表服務 329
18.1.2 啟動報表服務 329
18.2 使用Reporting Services配置管理器 331
18.2.1 什麼是Reporting Services配置管理器 331
18.2.2 使用Reporting Services配置管理器的常用功能 331
18.3 創建報表 332
18.3.1 創建報表伺服器項目 333
18.3.2 創建報表 334
18.3.3 設定連線信息 335
18.3.4 設計報表查詢 337
18.3.5 添加表數據區域 339
18.3.6 預覽基本報表 341
18.4 部署報表 342
18.5 小結 343
18.6 習題 344
第19章 SQL Server 2012分析服務 345
19.1 認識SQL Server 2012分析服務 345
19.1.1 啟動SQL Server 2012的分析服務 345
19.1.2 設定分析服務的賬戶 346
19.2 分析服務項目實例 346
19.2.1 創建分析服務項目 347
19.2.2 創建數據源 347
19.2.3 創建數據源視圖 349
19.2.4 部署分析服務項目 351
19.3 使用SSMS管理分析服務 352
19.3.1 使用分析服務連線SSMS 352
19.3.2 查看多維數據集 353
19.3.3 查看維度 353
19.4 小結 354
19.5 習題 354
第五篇 SQL Server 2012實戰篇
第20章 使用.NET實現圖書管理系統 355
20.1 圖書管理系統的需求分析 355
20.1.1 了解C/S結構 355
20.1.2 圖書管理系統的功能概述 355
20.2 圖書管理系統的設計 356
20.2.1 什麼是ADONET 356
20.2.2 圖書管理系統資料庫的設計 356
20.2.3 圖書管理系統資料庫連線類的創建 358
20.3 圖書管理系統的實現 360
20.3.1 登錄功能的實現 360
20.3.2 圖書管理功能的實現 361
20.4 小結 366
20.5 習題 366
第21章 使用JSP實現線上訂餐系統 368
21.1 了解B/S結構 368
21.1.1 了解B/S結構的優勢 368
21.1.2 了解TOMCAT伺服器 368
21.2 線上訂餐系統需求及設計 369
21.2.1 訂餐系統的需求 369
21.2.2 模組分類 369
21.2.3 線上訂餐系統資料庫結構 370
21.3 線上訂餐系統的實現 372
21.3.1 JDBC Driver的使用 372
21.3.2 連線池的實現 372
21.3.3 登錄操作的實現 374
21.3.4 餐品訂購功能的實現 377
21.3.5 查看所有用戶訂單功能的實現 380
21.3.6 查看我的訂餐功能 383
21.4 小結 385
21.5 習題 385
前言
“21天學編程系列”自2009年1月上市以來一直受到了廣大讀者的青睞。該系列中的大部分圖書從一上市就登上了編程類圖書銷量排行榜的前列,很多大中專院校也將該系列中的一些圖書作為教材使用,目前這些圖書已經多次印刷、改版。可以說,“21天學編程系列”是自2009年以來國內原創計算機編程圖書最有影響力的品牌之一。
為了使該系列圖書能緊跟技術和教學的發展,更加適合讀者學習和學校教學,我們結合最新技術和讀者的建議,對該系列圖書進行了改版。本書便是該系列中的SQL Server分冊。
本書有何特色
1.細緻體貼的講解
為了讓讀者更快地上手,本書特別設計了適合初學者的學習方式,用準確的語言總結概念用直觀的圖示演示過程用詳細的注釋解釋代碼用形象的比喻幫助記憶。效果如下:
學習目標 放在每一節開始位置,讓讀者清楚地知道每一章的學習目標。
實例 為了方便讀者學習,每章都設定了大量的實例。
代碼說明 將範例代碼中的關鍵代碼行逐一解釋,有助於讀者掌握相關概念和知識。
執行結果 對範例給出運行結果和對應圖示,幫助讀者更直觀地理解範例代碼。
說明 為了便於讀者閱讀,把需要注意的問題做了提示。
習題 每章最後提供習題,供讀者檢驗所學知識是否牢固掌握。
操作題 為了便於讀者鞏固所學內容,書中提供了操作題,並給出了操作提示和結果,配合讀者自己動手實踐。
2.實用超值的DVD光碟
為了幫助讀者比較直觀地學習,本書附帶DVD光碟,內容包括多媒體視頻、電子教案(PPT)、實例原始碼等。
多媒體視頻
本書配有長達15小時的教學視頻,講解關鍵知識點界面操作和書中的一些綜合練習題。
作者親自配音、演示,手把手教會讀者使用。
電子教案(PPT)
本書可以作為高校相關課程的教材或課外輔導書,所以作者特別為本書製作了電子教案(PPT),以方便老師教學使用。
職場面試法寶
3.提供完善的技術支持
本書技術支持論壇,讀者可以在上面提問交流。另外,論壇上還有一些教程、視頻動畫和各種技術文章,可幫助讀者提高開發水平。
推薦的學習計畫
為了能夠讓讀者快速了解每章的學習目標以及如何合理地使用本書,下面為讀者推薦一個學習計畫,列表如下。
本書適合哪些讀者閱讀
本書非常適合以下人員閱讀:
SQL Server初學者;
程式設計師;
SQL Server資料庫管理員;
大、中專院校及其他培訓機構的學生;
其他編程愛好者。
本書作者
本書主要由秦婧編寫。其他參與編寫的人員有張燕、杜海梅、孟春燕、吳金艷、鮑凱、龐雁豪、楊銳麗、鮑潔、王小龍、李亞傑、張彥梅、劉媛媛、李亞偉、張昆(筆名:張增強),在此一併表示感謝。