第1章 数据库基础知识 1
1.1 数据库概述 1
1.1.1 计算机数据管理的产生与发展 1
1.1.2 常用数据模型 3
1.1.3 SQL Server概述 9
1.2 常用数据库管理系统 10
1.3 数据库的基本概念 12
1.3.1 数据和信息 12
1.3.2 数据库和表 12
1.3.3 数据冗余和数据完整性 14
1.4 SQL Server Management Studio简介 15
1.5 SQL Server 2008概述 16
1.5.1 SQL Server 2008的主要功能 16
1.5.2 SQL Server 2008的数据平台 17
1.5.3 配置SQL Server 2008 17
本章小结 24
习题 24
第2章 数据库对象管理 26
2.1 创建与管理数据库 26
2.1.1 SQL Server 2008的系统数据库 26
2.1.2 数据库文件与文件组 27
2.1.3 创建数据库 28
2.1.4 查看与修改数据库 32
2.1.5 分离与附加数据库 33
2.1.6 备份与恢复数据库 35
2.1.7 删除数据库 45
2.2 创建与管理表 45
2.2.1 数据类型 45
2.2.2 创建、修改与删除表 48
2.2.3 设置表的数据完整性 50
2.2.4 表之间的关系 57
2.2.5 导入和导出数据 59
本章小结 64
习题 64
第3章 Transact-SQL数据管理 66
3.1 SQL简介 66
3.2 Transact-SQL基础 67
3.3 常用函数 69
3.4 插入行 72
3.5 更新行 74
3.6 删除行 75
本章小结 76
习题 77
第4章 基本查询 78
4.1 Transact-SQL查询基础 78
4.1.1 查询和记录集 78
4.1.2 使用SELECT语句查询 78
4.2 在查询中使用TOP和PERCENT限制查询结果 81
4.3 在查询中使用DISTINCT过滤重复行 82
4.4 模式查询 83
4.4.1 使用LIKE和通配符进行模式查询 83
4.4.2 使用BETWEEN在指定范围内进行查询 85
4.5 在查询中使用聚合函数 85
4.6 分组查询 87
4.6.1 使用GROUP BY子句 87
4.6.2 使用HAVING子句 87
4.7 多表联接查询 88
4.7.1 使用表的别名和命名列 88
4.7.2 联接概述 89
4.7.3 内联接查询 89
4.7.4 外联接查询 91
4.7.5 自联接查询 92
本章小结 92
习题 92
第5章 高级查询 94
5.1 子查询概述 94
5.1.1 WHERE子句中嵌套子查询 94
5.1.2 FROM子句中嵌套子查询 95
5.2 无关子查询 96
5.2.1 单行子查询 96
5.2.2 多行子查询 97
5.3 相关子查询 98
5.3.1 EXISTS子查询 99
5.3.2 NOT EXISTS子查询 100
5.4 子查询在INSERT、UPDATE、DELETE语句中的应用 100
5.4.1 在INSERT语句中嵌套子查询 100
5.4.2 在UPDATE语句中嵌套子查询 101
5.4.3 在DELETE语句中嵌套子查询 102
5.5 集合操作 103
5.5.1 UNION运算符 103
5.5.2 EXCEPT运算符 105
5.5.3 INTERSECT运算符 105
本章小结 106
习题 107
第6章 使用SQL语句管理和维护数据库对象 108
6.1 管理数据库 108
6.1.1 创建数据库 108
6.1.2 修改数据库 109
6.1.3 删除数据库 111
6.2 管理表 111
6.2.1 创建表 111
6.2.2 修改表 113
6.2.3 删除表 115
6.3 索引 115
6.3.1 索引概述 116
6.3.2 索引的分类 116
6.3.3 创建索引 117
6.3.4 查看索引 119
6.3.5 删除索引 119
6.4 视图 120
6.4.1 视图概述 120
6.4.2 创建视图 121
6.4.3 修改视图 123
6.4.4 删除视图 125
6.4.5 通过视图修改数据 125
6.5 SQL Server安全管理 126
6.5.1 SQL Server安全机制 126
6.5.2 用户管理 129
6.5.3 权限管理 130
6.5.4 角色管理 132
本章小结 136
习题 136
第7章 Transact-SQL编程 138
7.1 数据类型 138
7.2 批处理 139
7.2.1 批处理语句 139
7.2.2 注释语句 139
7.3 输出语句 140
7.4 流控制语句 140
7.4.1 BEGIN…END语句 141
7.4.2 IF…ELSE语句 141
7.4.3 WHILE、BREAK与CONTINUE语句 142
7.4.4 GOTO语句 144
7.4.5 RETURN语句 144
7.4.6 WAITFOR语句 144
7.4.7 CASE表达式 145
7.5 错误处理 146
7.5.1 使用@@ERROR函数测试错误 147
7.5.2 使用TRY…CATCH构造处理错误 148
本章小结 149
习题 149
第8章 游标和事务 151
8.1 游标 151
8.1.1 游标的概念 151
8.1.2 游标的定义 152
8.1.3 游标的用法 153
8.1.4 应用举例 155
8.2 事务 158
8.2.1 事务的概念 158
8.2.2 事务的属性 159
8.2.3 事务的模式 159
8.2.4 事务的控制 160
8.2.5 事务编程示例 160
本章小结 162
习题 162
第9章 存储过程与用户自定义函数 163
9.1 存储过程的基本概念 163
9.1.1 存储过程的概念 163
9.1.2 存储过程的类型 164
9.2 创建与执行自定义存储过程 164
9.2.1 使用SQL命令创建与执行存储过程 165
9.2.2 使用模板创建存储过程 168
9.2.3 查看、修改和删除存储过程 171
9.3 常用系统存储过程 173
9.4 用户自定义函数 174
9.4.1 用户自定义函数的类型 174
9.4.2 创建与调用用户自定义函数 174
9.4.3 修改与删除用户自定义函数 178
本章小结 180
习题 180
第10章 触发器 181
10.1 触发器概述 181
10.2 触发器的工作原理 183
10.3 创建与管理触发器 184
10.3.1 使用Transact-SQL语句创建触发器 184
10.3.2 使用模板创建触发器 185
10.3.3 更改和删除触发器 186
10.4 使用触发器 186
10.4.1 使用INSERT触发器 187
10.4.2 使用DELETE触发器 187
10.4.3 使用UPDATE触发器 188
10.5 基于视图的INSTEAD OF触发器 189
本章小结 190
习题 191
第11章 数据库设计 192
11.1 数据库系统的设计过程 192
11.2 需求分析 194
11.2.1 需求分析的任务 194
11.2.2 需求分析的步骤 195
11.2.3 需求分析与表达 195
11.2.4 撰写需求说明书 199
11.3 概念结构设计 199
11.3.1 概念结构与E-R图 200
11.3.2 设计局部视图 202
11.3.3 分E-R图的集成 206
11.4 逻辑结构设计 208
11.4.1 E-R图向关系数据模型的转换 208
11.4.2 设计用户子模式 210
11.5 物理结构设计 211
11.5.1 数据的存储结构与存取方法 211
11.5.2 分析事务的运行特征 212
11.5.3 确定数据的存取方法 213
11.5.4 确定数据库的存储结构 214
11.6 数据库的实施、运行与维护 214
11.6.1 数据库的实施 214
11.6.2 数据库的试运行 215
11.6.3 数据库的运行与维护 216
本章小结 216
习题 217
第12章 综合实例 218
12.1 系统开发环境与功能结构设计 218
12.2 数据库设计 219
12.2.1 表设计 219
12.2.2 表关系 221
12.3 ADO.NET数据库访问SQL Server技术 222
12.3.1 ADO.NET的数据处理类 222
12.3.2 ADO.NET的数据处理类的常用属性和方法 223
12.3.3 ADO.NET访问数据库的步骤 224
12.4 系统实现 225
12.4.1 设置数据库连接信息 225
12.4.2 数据库访问公共类 226
12.4.3 登录页面 229
12.4.4 系统主界面 232
12.4.5 系统菜单 233
12.4.6 修改密码 235
12.4.7 成绩查询页面(学生用户) 236
12.4.8 用户管理页面 237
12.4.9 数据管理页面 242
本章小结 245
参考文献 246