數(shù)據(jù)庫原理與應(yīng)用是計算機專業(yè)基礎(chǔ)課程,包括兩部分內(nèi)容:第一部分是數(shù)據(jù)庫原理,主要介紹數(shù)據(jù)模型、關(guān)系數(shù)據(jù)模型、關(guān)系運算、SQL、數(shù)據(jù)規(guī)范化以及數(shù)據(jù)庫設(shè)計;第二部分講解數(shù)據(jù)庫SQLServer2012的使用,包括數(shù)據(jù)庫的創(chuàng)建、用戶權(quán)限管理、表管理、數(shù)據(jù)查詢、索引和視圖、Transact-SQL程序設(shè)計以及數(shù)據(jù)導(dǎo)入導(dǎo)出和數(shù)據(jù)庫的備份還原。本書基于作者多年使用數(shù)據(jù)庫的經(jīng)驗和教學(xué)體會,全面而又深入地講解了關(guān)系數(shù)據(jù)庫的原理和使用。本書編寫過程中,力求做到概念清晰準(zhǔn)確,內(nèi)容深入淺出,面向?qū)嶋H應(yīng)用。本書可以作為高等院校計算機專業(yè)本科學(xué)生的數(shù)據(jù)庫課程教材,也可供計算機相關(guān)應(yīng)用人員參考。
作者對數(shù)據(jù)庫原理和數(shù)據(jù)庫的應(yīng)用都有很深的體會,原理部分主要為考研學(xué)生服務(wù),應(yīng)用部分主要為參加工作的學(xué)生服務(wù),兩者需要同時兼顧,以前采用的教材已不適合,原理部分內(nèi)容涉及不多且數(shù)據(jù)庫產(chǎn)品比較陳舊,市面上的相關(guān)教材也不是太合適,要么原理不夠深入,要么數(shù)據(jù)庫產(chǎn)品不是主流,不利于學(xué)生學(xué)習(xí)。
本書兼顧數(shù)據(jù)庫原理和數(shù)據(jù)庫應(yīng)用兩部分內(nèi)容,基于作者多年使用數(shù)據(jù)庫的經(jīng)驗和教學(xué)體會,全面并深入講解關(guān)系數(shù)據(jù)庫的原理和使用。做到了概念清晰準(zhǔn)確、深入淺出、面向?qū)嶋H應(yīng)用。
第1章 數(shù)據(jù)庫系統(tǒng)概述 1
1.1 基本概念 1
1.2 數(shù)據(jù)管理技術(shù) 2
1.3 數(shù)據(jù)模型 3
1.3.1 數(shù)據(jù)模型組成 3
1.3.2 數(shù)據(jù)模型分類 4
1.3.3 概念模型 4
1.3.4 邏輯模型 5
1.4 數(shù)據(jù)庫管理系統(tǒng)結(jié)構(gòu) 7
1.4.1 三級模式 7
1.4.2 二級映像 8
1.5 數(shù)據(jù)庫系統(tǒng)組成 8
小結(jié) 9
習(xí)題 9
第2章 關(guān)系數(shù)據(jù)庫 10
2.1 關(guān)系概述 10
2.1.1 關(guān)系定義 10
2.1.2 關(guān)系數(shù)據(jù)結(jié)構(gòu)及基本概念 11
2.2 關(guān)系運算 13
2.2.1 關(guān)系操作概述 13
2.2.2 傳統(tǒng)關(guān)系運算 13
2.2.3 專門關(guān)系運算 15
2.3 完整性約束 23
2.3.1 實體完整性 24
2.3.2 參照完整性 24
2.3.3 用戶定義的完整性 24
2.4 小結(jié) 24
習(xí)題 25
第3章 SQL 26
3.1 SQL概述 26
3.1.1 SQL的產(chǎn)生與發(fā)展 26
3.1.2 SQL特點 26
3.1.3 SQL分類 27
3.2 數(shù)據(jù)定義語句 28
3.2.1 基本表操作 28
3.2.2 索引操作 30
3.2.3 視圖操作 31
3.3 數(shù)據(jù)操縱語句 32
3.3.1 插入數(shù)據(jù) 32
3.3.2 修改數(shù)據(jù) 33
3.3.3 刪除數(shù)據(jù) 34
3.4 查詢語句 34
3.4.1 單表查詢 35
3.4.2 連接查詢 38
3.4.3 嵌套查詢 42
3.4.4 集合查詢 44
3.5 權(quán)限控制語句 45
3.5.1 權(quán)限授予 46
3.5.2 權(quán)限回收 46
3.6 事務(wù)控制語句 47
小結(jié) 47
習(xí)題 47
第4章 數(shù)據(jù)完整性約束 49
4.1 實體完整性 49
4.2 參照完整性 51
4.3 用戶定義的完整性 53
4.3.1 非空約束 53
4.3.2 唯一約束 54
4.3.3 檢查約束 55
4.4 完整性約束命名 56
小結(jié) 57
習(xí)題 58
第5章 關(guān)系規(guī)范化 59
5.1 函數(shù)依賴 59
5.2 規(guī)范化 61
小結(jié) 64
習(xí)題 65
第6章 數(shù)據(jù)庫設(shè)計 66
6.1 數(shù)據(jù)庫設(shè)計概述 66
6.2 概念結(jié)構(gòu)設(shè)計 67
6.3 邏輯結(jié)構(gòu)設(shè)計 69
6.4 物理結(jié)構(gòu)設(shè)計 70
6.5 數(shù)據(jù)庫實施與維護 71
小結(jié) 71
習(xí)題 72
第7章 數(shù)據(jù)庫基礎(chǔ) 73
7.1 SQL Server 2012介紹 73
7.2 安裝數(shù)據(jù)庫 73
7.3 常用工具介紹 84
7.4 數(shù)據(jù)庫組成 86
7.5 查看數(shù)據(jù)庫 88
7.6 創(chuàng)建數(shù)據(jù)庫 90
7.7 修改數(shù)據(jù)庫 94
7.7.1 修改數(shù)據(jù)庫文件和文件組 94
7.7.2 修改數(shù)據(jù)庫選項 96
7.8 刪除數(shù)據(jù)庫 98
小結(jié) 98
習(xí)題 98
第8章 數(shù)據(jù)庫安全 100
8.1 SQL Server 2012身份驗證模式 100
8.2 登錄賬號 101
8.2.1 查看登錄 102
8.2.2 創(chuàng)建登錄 103
8.2.3 修改登錄 104
8.2.4 刪除登錄 105
8.3 數(shù)據(jù)庫用戶 106
8.3.1 查看數(shù)據(jù)庫用戶 106
8.3.2 創(chuàng)建數(shù)據(jù)庫用戶 106
8.3.3 刪除數(shù)據(jù)庫用戶 108
8.4 架構(gòu) 109
8.4.1 查看架構(gòu) 109
8.4.2 創(chuàng)建架構(gòu) 110
8.4.3 刪除架構(gòu) 111
8.5 權(quán)限 112
8.5.1 權(quán)限分類 112
8.5.2 權(quán)限授予回收 113
8.5.3 查看權(quán)限 115
8.6 角色 115
8.6.1 固定服務(wù)器角色 115
8.6.2 固定數(shù)據(jù)庫角色 118
8.6.3 用戶自定義角色 120
小結(jié) 120
習(xí)題 121
第9章 表的管理 122
9.1 數(shù)據(jù)類型 122
9.1.1 數(shù)字類型 122
9.1.2 字符類型 123
9.1.3 日期類型 124
9.1.4 二進制類型 124
9.2 表操作 124
9.2.1 查看表 124
9.2.2 創(chuàng)建表 126
9.2.3 修改表 129
9.2.4 刪除表 131
9.3 數(shù)據(jù)操作 132
9.3.1 插入數(shù)據(jù) 132
9.3.2 修改數(shù)據(jù) 134
9.3.3 刪除數(shù)據(jù) 134
9.4 事務(wù)處理 135
9.4.1 事務(wù)基本概念 135
9.4.2 SQL Server中的事務(wù)模式 136
9.5 完整性約束 138
9.5.1 主鍵約束 138
9.5.2 外鍵約束 139
9.5.3 唯一約束 141
9.5.4 檢查約束 142
9.5.5 非空約束 143
9.5.6 查看約束 144
9.5.7 約束操作 146
小結(jié) 147
習(xí)題 147
第10章 數(shù)據(jù)查詢 149
10.1 基礎(chǔ)知識 149
10.2 單表查詢 150
10.2.1 基本查詢 151
10.2.2 分組查詢 155
10.2.3 數(shù)據(jù)排序 157
10.3 連接查詢 158
10.3.1 內(nèi)連接 159
10.3.2 外連接 161
10.3.3 自連接 162
10.3.4 交叉連接 163
10.4 子查詢 164
10.4.1 單行子查詢 165
10.4.2 多行子查詢 166
10.4.3 關(guān)聯(lián)子查詢 166
10.4.4 編寫包含子查詢的DML語句 168
10.5 高級查詢 168
10.5.1 集合操作 168
10.5.2 CASE語句 170
小結(jié) 171
習(xí)題 171
第11章 索引和視圖 173
11.1 索引 173
11.1.1 了解索引 173
11.1.2 查看索引 174
11.1.3 創(chuàng)建索引 176
11.1.4 修改索引 180
11.1.5 刪除索引 183
11.2 視圖 183
11.2.1 查看視圖 184
11.2.2 創(chuàng)建視圖 185
11.2.3 修改視圖 187
11.2.4 刪除視圖 188
小結(jié) 188
習(xí)題 189
第12章 Transact-SQL程序設(shè)計 190
12.1 常量與變量 190
12.1.1 常量 190
12.1.2 變量 190
12.2 運算符 193
12.3 常用函數(shù) 194
12.3.1 常用統(tǒng)計函數(shù) 194
12.3.2 常用數(shù)學(xué)函數(shù) 194
12.3.3 常用字符串函數(shù) 196
12.3.4 常用日期函數(shù) 197
12.3.5 數(shù)據(jù)類型轉(zhuǎn)換函數(shù) 199
12.4 流程控制 199
12.4.1 語句注釋 199
12.4.2 語句塊 199
12.4.3 選擇控制語句IF…ELSE 200
12.4.4 循環(huán)控制語句WHILE 200
12.4.5 跳轉(zhuǎn)語句GOTO 201
12.4.6 RETURN語句 201
12.4.7 調(diào)度執(zhí)行語句WAITFOR 202
12.5 游標(biāo) 202
12.5.1 聲明游標(biāo) 203
12.5.2 使用游標(biāo) 203
小結(jié) 206
習(xí)題 206
第13章 存儲過程、函數(shù)和觸發(fā)器 207
13.1 存儲過程 207
13.1.1 存儲過程的類型及功能特點 207
13.1.2 創(chuàng)建存儲過程 207
13.1.3 修改存儲過程 210
13.1.4 執(zhí)行存儲過程 210
13.1.5 查看存儲過程 211
13.1.6 刪除存儲過程 213
13.1.7 存儲過程的消息反饋 214
13.2 函數(shù) 215
13.2.1 標(biāo)量函數(shù) 216
13.2.2 內(nèi)聯(lián)表值函數(shù) 218
13.2.3 多語句表值函數(shù) 220
13.2.4 查看函數(shù) 221
13.2.5 刪除函數(shù) 223
13.3 觸發(fā)器 224
13.3.1 DML觸發(fā)器 224
13.3.2 DDL觸發(fā)器 227
13.3.3 查看觸發(fā)器 229
13.3.4 刪除觸發(fā)器 232
13.3.5 啟用和禁用觸發(fā)器 233
小結(jié) 234
習(xí)題 235
第14章 數(shù)據(jù)導(dǎo)入導(dǎo)出 236
14.1 數(shù)據(jù)導(dǎo)入導(dǎo)出介紹 236
14.2 使用SQL Server導(dǎo)入和導(dǎo)出向?qū)?236
14.2.1 從其他SQL Server數(shù)據(jù)庫導(dǎo)入 236
14.2.2 從Oracle數(shù)據(jù)庫導(dǎo)入 240
14.2.3 從平面文件導(dǎo)入 244
14.2.4 從Excel文件導(dǎo)入 248
14.2.5 導(dǎo)出數(shù)據(jù)到平面文件 252
14.2.6 導(dǎo)出數(shù)據(jù)到Excel文件 255
14.2.7 導(dǎo)出數(shù)據(jù)到Oracle數(shù)據(jù)庫 258
14.3 使用BCP命令 263
14.3.1 導(dǎo)入數(shù)據(jù) 263
14.3.2 導(dǎo)出數(shù)據(jù) 266
14.4 使用BULK INSERT語句 268
小結(jié) 271
習(xí)題 271
第15章 數(shù)據(jù)庫維護 272
15.1 分離和附加數(shù)據(jù)庫 272
15.1.1 分離數(shù)據(jù)庫 272
15.1.2 附加數(shù)據(jù)庫 273
15.2 備份和還原數(shù)據(jù)庫 274
15.2.1 基本概念 274
15.2.2 備份數(shù)據(jù)庫 275
15.2.3 查看備份信息 278
15.2.4 還原數(shù)據(jù)庫 279
小結(jié) 282
習(xí)題 283