第1章 SQL Server 2008的安装与配置 1
1.1 数据库技术的理论基础 1
1.1.1 基本概念 1
1.1.2 数据模型与三种逻辑模型 2
1.1.3 关系型数据库系统 4
1.2 SQL Server 2008概述 5
1.2.1 SQL Server的发展历史 5
1.2.2 SQL Server 2008的版本类型 6
1.2.3 安装SQL Server 2008的环境要求 7
1.3 安装SQL Server 2008 9
1.3.1 安装前的准备工作 9
1.3.2 安装过程 10
1.3.3 获取SQL Server 2008的试用版或免费版 15
1.4 配置SQL Server 2008系统 16
1.4.1 验证SQL Server 2008安装 16
1.4.2 配置Reporting Services 17
1.4.3 配置Windows防火墙 18
本章小结 18
课后练习 18
本章实训 19
第2章 SQL Server 2008的常用工具 21
2.1 通览SQ LServer 2008 21
2.1.1 SQL Server 2008的体系框架与结构 21
2.1.2 SQL Server 2008实用工具概述 22
2.2 SQL Server Management Studio 23
2.2.1 启动SSMS 23
2.2.2 使用已注册的服务器 24
2.2.3 使用对象资源管理器 25
2.2.4 使用文档窗口 26
2.2.5 使用查询编辑器 27
2.3 配置管理器 27
2.3.1 管理SQL Server 2008服务 27
2.3.2 更改登录身份 28
2.3.3 配置服务器端网络协议 29
2.3.4 配置客户端网络协议 31
2.4 SQL Server Profiler 32
2.5 数据库引擎优化顾问 34
2.6 Business Intelligence Development Studio 34
2.7 其他实用工具 35
2.7.1 SQL Server错误和使用情况报告工具 35
2.7.2 文档和教程 36
2.7.3 导入和导出数据工具 36
本章小结 36
课后练习 36
本章实训 37
第3章 Transact-SQL基础 39
3.1 SQL与T-SQL 39
3.1.1 SQL 39
3.1.2 Transact-SQL 40
3.1.3 Transact-SQL语法的约定 42
3.2 命名标识符 42
3.2.1 常规标识符的格式规范 43
3.2.2 分隔标识符的适用范围 43
3.2.3 标识符的命名法则 43
3.3 SQL Server 2008的数据类型 43
3.3.1 数值类型 44
3.3.2 单字节字符类型 45
3.3.3 双字节字符类型 45
3.3.4 二进制类型 46
3.3.5 货币类型 46
3.3.6 日期时间类型 47
3.3.7 空间数据类型 48
3.3.8 特殊类型 48
3.3.9 用户自定义类型 49
3.4 常量与变量 52
3.4.1 常量 52
3.4.2 变量 52
3.5 T-SQL的批处理与脚本 54
3.6 T-SQL的运算符与表达式 57
3.6.1 运算符 57
3.6.2 运算符的优先级 58
3.6.3 表达式 59
本章小结 60
课后练习 60
本章实训 62
第4章 数据库的创建与管理 64
4.1 SQL Server数据库的结构 64
4.1.1 物理数据库的文件组成 64
4.1.2 逻辑数据库的对象组成 66
4.1.3 系统数据库 66
4.2 使用SSMS操作数据库 68
4.2.1 创建数据库 68
4.2.2 修改数据库的属性 70
4.2.3 分离数据库 71
4.2.4 附加数据库 72
4.2.5 删除数据库 72
4.3 使用T-SQL操作数据库 73
4.3.1 创建数据库 73
4.3.2 切换(或打开)数据库 77
4.3.3 修改数据库 78
4.3.4 删除数据库 80
本章小结 81
课后练习 81
本章实训 83
第5章 数据表的创建与管理 84
5.1 表和表结构 84
5.2 SSMS操作数据表 85
5.2.1 创建数据表 85
5.2.2 修改数据表结构 88
5.2.3 数据表更名 90
5.2.4 删除数据表 90
5.3 T-SQL操作数据表 91
5.3.1 创建数据表 91
5.3.2 修改数据表结构 95
5.3.3 删除数据表 98
本章小结 99
课后练习 99
本章实训 100
第6章 表记录的操作 102
6.1 SSMS操作数据记录 102
6.1.1 添加记录到表中 102
6.1.2 更新表的记录 103
6.1.3 删除表的记录 104
6.2 T-SQL操作数据记录 105
6.2.1 用INSERT语句插入记录 105
6.2.2 用INSERT语句插入带有标识列值的记录 107
6.2.3 用UPDATE语句修改记录 108
6.2.4 用DELETE语句删除记录 108
6.2.5 用TRUNCATE TABLE语句清空数据表 109
本章小结 110
课后练习 110
本章实训 111
第7章 数据完整性控制 113
7.1 数据完整性 113
7.1.1 与数据完整性相关的重要概念 114
7.1.2 数据完整性的类别 115
7.2 数据完整性的实现 117
7.2.1 实现数据完整性的主要方式 117
7.2.2 约束与约束的类别 117
7.2.3 数据完整性与约束的关系 119
7.3 PRIMARY KEY约束的管理 120
7.3.1 使用T-SQL命令定义主键约束 120
7.3.2 使用T-SQL命令删除主键约束 123
7.3.3 使用T-SQL命令修改主键约束 124
7.3.4 使用系统存储过程查看主键约束 124
7.3.5 使用SSMS管理主键约束 125
7.4 其他约束的管理 126
7.4.1 UNIQUE约束 126
7.4.2 FOREIGN KEY约束 129
7.4.3 CHECK约束 132
7.4.4 DEFAULT约束 135
7.4.5 NOT NULL约束 137
本章小结 139
课后练习 139
本章实训 140
第8章 数据库的设计与实现 142
8.1 E-R方法与E-R图 142
8.1.1 问题建模方法:E-R方法 142
8.1.2 E-R图的基本要素 142
8.2 数据库系统设计流程 144
8.2.1 需求分析阶段 144
8.2.2 概念设计阶段 144
8.2.3 逻辑设计阶段 145
8.2.4 物理设计阶段 145
8.2.5 数据库实施阶段 145
8.2.6 数据库运行和维护阶段 146
8.3 综合案例1:图书馆数据库系统的设计与实现 146
8.3.1 案例引入 146
8.3.2 建立Library数据库的E-R模型 146
8.3.3 创建Library数据库 147
8.3.4 设计表结构 148
8.3.5 实现表数据的输入 150
8.4 综合案例2:人力资源管理数据库系统 154
8.4.1 案例引入 154
8.4.2 需求分析 154
8.4.3 概念设计 155
8.4.4 逻辑设计 155
8.4.5 物理设计与数据库实施 156
本章小结 161
课后练习 161
本章实训 162
第9章 数据库的简单查询 164
9.1 查询语句SELECT 164
9.1.1 SELECT语句的通用格式 164
9.1.2 目标项列表 166
9.2 无条件查询单一数据表 166
9.2.1 查询数据表的指定列 167
9.2.2 查询数据表的所有列 167
9.2.3 目标项列表中使用常量 168
9.2.4 使用列的别名改变列标题 169
9.2.5 目标项列表中使用函数或表达式 170
9.2.6 使用等于号为表达式列定义别名 172
9.3 对查询结果记录进行过滤 172
9.3.1 保留或过滤相同数据行 172
9.3.2 选定相邻若干数据行 173
9.4 用条件查询筛选数据行 175
9.4.1 简单查询 175
9.4.2 模糊查询 178
9.4.3 复合条件查询 180
本章小结 181
课后练习 181
本章实训 182
第10章 作用于查询的处理子句 184
10.1 在查询中进行排序 184
10.2 在查询中使用聚合函数 186
10.2.1 聚合函数 186
10.2.2 查询聚合函数值 187
10.3 在查询中实施分组 189
10.3.1 GROUP BY子句 189
10.3.2 不带HAVING条件子句的分组查询 190
10.3.3 带有HAVING条件子句的分组查询 192
10.4 在查询中实施分类汇总 194
10.4.1 不带BY短语的COMPUTE子句 194
10.4.2 带有BY短语的COMPUTE子句 195
10.5 将查询结果保存为数据表 196
本章小结 197
课后练习 197
本章实训 198
第11章 多表复杂查询 200
11.1 多表连接查询 200
11.1.1 实现多表连接的方法 201
11.1.2 交叉连接 201
11.1.3 内连接 203
11.1.4 自连接 205
11.1.5 外连接 207
11.1.6 复合条件连接 210
11.2 嵌套查询 211
11.2.1 嵌套查询的结构与组织 211
11.2.2 使用IN或NOT IN谓词的嵌套查询 212
11.2.3 使用比较运算符的嵌套查询 214
11.2.4 使用ANY或ALL谓词的嵌套查询 215
11.2.5 使用EXISTS或NOT EXISTS谓词的嵌套查询 217
11.3 联合查询 219
11.3.1 求并联合查询 219
11.3.2 求交联合查询 220
11.3.3 求差联合查询 221
本章小结 222
课后练习 222
本章实训 224
第12章 视图 225
12.1 视图是由查询获取的虚拟表 225
12.1.1 视图概念 225
12.1.2 建立视图的意义 226
12.1.3 视图的类型与使用限制 227
12.2 使用T-SQL管理视图 228
12.2.1 使用CREATE VIEW语句创建视图 228
12.2.2 查询视图结构与内容 231
12.2.3 使用ALTER VIEW语句修改视图 232
12.2.4 操作视图数据改变基表内容 233
12.2.5 使用DROP VIEW语句删除视图 236
12.3 使用SSMS管理视图 236
12.3.1 创建视图 236
12.3.2 查看视图内容 239
12.3.3 修改视图定义 239
12.3.4 删除视图 240
12.3.5 操作视图数据 241
本章小结 242
课后练习 242
本章实训 244
第13章 索引 245
13.1 索引是数据表的目录 245
13.1.1 索引的数据结构与工作机制 245
13.1.2 索引的作用与意义 246
13.1.3 建立索引的原则 247
13.1.4 基于B-树结构的页组织 247
13.2 索引的类型 248
13.2.1 聚集索引 248
13.2.2 非聚集索引 249
13.2.3 XML索引 250
13.2.4 其他索引类型 251
13.3 使用SSMS管理索引 252
13.3.1 使用SSMS创建索引 252
13.3.2 使用SSMS查看索引 254
13.3.3 使用SSMS删除索引 254
13.4 使用T-SOL管理索引 255
13.4.1 使用CREATE INDEX语句创建索引 255
13.4.2 查看索引信息 257
13.4.3 使用DROP INDEX语句删除索引 257
本章小结 258
课后练习 258
本章实训 260
第14章 流程控制与函数 261
14.1 流程控制 261
14.1.1 复合语句结构 261
14.1.2 条件判断结构 262
14.1.3 多重分支结构 263
14.1.4 循环结构 265
14.1.5 异常捕捉与处理结构 267
14.1.6 无条件返回语句 267
14.1.7 无条件转移语句 268
14.1.8 延迟执行语句 269
14.2 系统内置函数 270
14.2.1 概述 270
14.2.2 数学函数 271
14.2.3 字符文本函数 272
14.2.4 日期时间函数 273
14.2.5 转换函数 274
14.3 用户自定义函数 276
14.3.1 用户自定义函数概述 276
14.3.2 标量值函数的操作 279
14.3.3 内联表值函数的操作 281
14.3.4 多语句表值函数的操作 282
本章小结 284
课后练习 284
本章实训 286
第15章 存储过程与触发器 287
15.1 存储过程是预编译的T-SQL程序 287
15.1.1 存储过程的概念 287
15.1.2 存储过程的优点 288
15.1.3 存储过程的类别 288
15.2 使用T-SQL语句管理存储过程 289
15.2.1 用T-SQL语句创建与执行存储过程 289
15.2.2 用系统存储过程查看存储过程 293
15.2.3 用ALTER PROC语句修改存储过程 294
15.2.4 用DRO PROC语句删除存储过程 295
15.3 使用SSMS工具管理存储过程 296
15.3.1 用SSMS创建存储过程 296
15.3.2 用SSMS查看、修改与删除存储过程 297
15.4 触发器是特殊的存储过程 298
15.4.1 触发器的分类 299
15.4.2 触发器的触发方式 299
15.4.3 触发器的工作原理 300
15.5 使用T-SQL语句创建并执行触发器 302
15.5.1 用T-SQL语句创建并验证DML触发器 302
15.5.2 用T-SQL语句创建并验证DDL触发器 308
15.6 使用T-SQL语句管理触发器 309
15.7 使用SSMS工具管理触发器 312
本章小结 313
课后练习 313
本章实训 314
第16章 安全管理与数据库维护 316
16.1 数据库安全概述 316
16.1.1 SQL Server 2008的安全模型 317
16.1.2 SQL Server 2008的两种身份验证模式 317
16.1.3 SQL Server 2008的两类身份标识 318
16.1.4 角色 319
16.1.5 架构 319
16.1.6 权限 320
16.2 管理SQL Server服务器安全性 321
16.2.1 管理身份验证模式 321
16.2.2 管理登录帐号 323
16.2.3 管理服务器角色 327
16.3 管理数据库安全性 329
16.3.1 管理数据库用户 329
16.3.2 管理固定数据库角色 332
16.3.3 管理用户自定义数据库角色 334
16.4 管理架构 335
16.4.1 创建架构 335
16.4.2 查看架构 337
16.4.3 修改架构属性 337
16.4.4 在架构之间转移数据库对象 338
16.4.5 删除架构 339
16.5 管理权限 339
16.5.1 使用T-SQL命令管理权限 339
16.5.2 使用SSMS工具管理权限 340
16.6 数据库的备份与还原 341
16.6.1 备份数据库 341
16.6.2 还原数据库 343
16.7 数据库的导入与导出 344
16.7.1 SQL Server 2008的导入和导出向导 345
16.7.2 导入数据 345
16.7.3 导出数据 346
本章小结 348
课后练习 348
本章实训 349
各章课后习题参考答案 351
参考文献与网站资源 356