第1章 数据库基础 1
1.1 数据库系统简介 1
1.1.1 数据库技术的发展 1
1.1.2 数据库系统的组成 2
1.2 数据模型 2
1.2.1 数据模型的概念 2
1.2.2 常见的数据模型 2
1.2.3 关系数据库的规范化 4
1.2.4 关系数据库的设计原则 4
1.2.5 实体与关系 4
1.3 数据库的体系结构 5
1.3.1 数据库三级模式结构 5
1.3.2 三级模式之间的映射 6
知识点提炼 6
习题 6
第2章 SQL Server 2008概述 7
2.1 初识SQL Server 2008 7
2.1.1 SQL Server 2008的简介 7
2.1.2 SQL Server 2008的特点 7
2.2 SQL Server 2008的安装 9
2.2.1 SQL Server 2008安装必备 9
2.2.2 SQL Server 2008的安装 10
2.2.3 SQL Server 2008的卸载 19
2.3 SQL Server 2008的服务 20
2.3.1 后台启动SQL Server 2008 20
2.3.2 通过SQL Server配置管理器启动SQL Server 2008 21
2.4 注册SQL Server 2008服务器 22
2.4.1 服务器组的创建与删除 22
2.4.2 服务器的注册与删除 24
知识点提炼 27
习题 28
第3章 Transact-SQL语法基础 29
3.1 T-SQL概述 29
3.1.1 T-SQL语言的组成 29
3.1.2 T-SQL语句结构 31
3.2 常量 32
3.2.1 字符串常量 32
3.2.2 二进制常量 32
3.2.3 bit常量 32
3.2.4 日期和时间常量 32
3.3 变量 32
3.3.1 局部变量 33
3.3.2 全局变量 34
3.4 注释符、运算符与通配符 36
3.4.1 注释符(Annotation) 36
3.4.2 运算符(Operator) 37
3.4.3 通配符(Wildcard) 40
3.5 流程控制 40
3.5.1 BEGIN...END 40
3.5.2 IF 41
3.5.3 IF...ELSE 42
3.5.4 CASE 44
3.5.5 WHILE 46
3.5.6 WHILE...CONTINUE...BREAK 47
3.5.7 RETURN 48
3.5.8 GOTO 49
3.5.9 WAITFOR 49
3.6 综合实例——修改数据库中的表 50
知识点提炼 51
习题 51
实验:附加单文件数据库 51
实验目的 51
实验内容 51
实验步骤 51
第4章 数据库和表 53
4.1 认识数据库 53
4.1.1 数据库基本概念 53
4.1.2 数据库常用对象 54
4.1.3 数据库组成 55
4.1.4 系统数据库 55
4.2 SQL Server的命名规范 56
4.2.1 标识符 56
4.2.2 对象命名规则 57
4.2.3 实例命名规则 57
4.3 数据库操作 58
4.3.1 创建数据库 58
4.3.2 修改数据库 62
4.3.3 删除数据库 66
4.4 数据表操作 68
4.4.1 以界面方式创建、修改和删除数据表 68
4.4.2 使用CREATE TABLE语句创建表 71
4.4.3 创建、修改和删除约束 73
4.4.4 使用ALTER TABLE语句修改表结构 79
4.4.5 使用DROP TABLE语句删除表 80
4.5 数据操作 81
4.5.1 使用INSERT语句添加数据 81
4.5.2 使用UPDATE语句修改指定数据 82
4.5.3 使用DELETE语句删除指定数据 82
4.6 表与表之间的关联 83
4.6.1 一对一关系 83
4.6.2 一对多关系 84
4.6.3 多对多关系 85
4.7 综合实例——批量插入数据 86
知识点提炼 86
习题 86
实验:删除表中相同行数据 87
实验目的 87
实验内容 87
实验步骤 87
第5章 SQL查询 88
5.1 SELECT检索数据 88
5.1.1 SELECT语句的基本结构 88
5.1.2 WITH子句 89
5.1.3 SELECT...FROM子句 90
5.1.4 INTO子句 94
5.1.5 WHERE子句 94
5.1.6 GROUP BY子句 102
5.1.7 HAVING子句 103
5.1.8 ORDER BY子句 104
5.1.9 COMPUTE子句 105
5.1.10 DISTINCT关键字 106
5.1.11 TOP关键字 107
5.2 UNION合并多个查询结果 107
5.2.1 UNION与联接之间的区别 108
5.2.2 使用UNION ALL合并表 108
5.2.3 UNION中的order by子句 108
5.2.4 UNION中的自动数据类型转换 109
5.2.5 使用UNION合并不同类型的数据 109
5.2.6 使用UNION合并有不同列数的两个表 110
5.2.7 使用UNION进行多表合并 110
5.3 子查询与嵌套查询 110
5.3.1 什么是子查询 111
5.3.2 什么是嵌套查询 111
5.3.3 简单的嵌套查询 111
5.3.4 带IN的嵌套查询 112
5.3.5 带NOT IN的嵌套查询 112
5.3.6 带SOME的嵌套查询 112
5.3.7 带ANY的嵌套查询 113
5.3.8 带ALL的嵌套查询 113
5.3.9 带EXISTS的嵌套查询 113
5.4 联接查询 114
5.4.1 内部联接 114
5.4.2 外部联接 114
5.4.3 交叉联接 116
5.4.4 联接多表的方法 117
5.5 综合实例——按照升序排列前三的数据 119
知识点提炼 119
习题 120
实验:利用模糊查询进行区间查询 120
实验目的 120
实验内容 120
实验步骤 120
第6章 视图操作 121
6.1 视图概述 121
6.1.1 以界面方式操作视图 121
6.1.2 使用CREATE VIEW语句创建视图 124
6.1.3 使用ALTER VIEW语句修改视图 126
6.1.4 使用DROP VIEW语句删除视图 127
6.2 视图中的数据操作 128
6.2.1 从视图中浏览数据 128
6.2.2 向视图中添加数据 130
6.2.3 修改视图中的数据 131
6.2.4 删除视图中的数据 131
6.3 综合实例——使用视图过滤些数据 131
知识点提炼 132
习题 132
实验:视图定义文本加密 133
实验目的 133
实验内容 133
实验步骤 133
第7章 索引与数据完整性 134
7.1 索引的概念 134
7.2 索引的优缺点 134
7.2.1 索引的优点 134
7.2.2 索引的缺点 135
7.3 索引的分类 135
7.3.1 聚集索引 135
7.3.2 非聚集索引 135
7.4 索引的操作 136
7.4.1 索引的创建 136
7.4.2 查看索引信息 138
7.4.3 索引的修改 139
7.4.4 索引的删除 140
7.4.5 设置索引的选项 141
7.5 索引的分析与维护 143
7.5.1 索引的分析 143
7.5.2 索引的维护 144
7.6 全文索引 146
7.6.1 使用企业管理器启用全文索引 146
7.6.2 使用Transact-SQL语句启用全文索引 150
7.6.3 使用Transact-SQL语句删除全文索引 153
7.6.4 全文目录 153
7.6.5 全文目录的维护 155
7.7 数据完整性 157
7.7.1 域完整性 157
7.7.2 实体完整性 158
7.7.3 引用完整性 159
7.7.4 用户定义完整性 160
7.8 综合实例——Transact-SQL维护全文索引 160
知识点提炼 161
习题 161
实验:对格式化的二进制数据进行全文索引 161
实验目的 161
实验内容 161
实验步骤 161
第8章 SQL常用函数 163
8.1 聚合函数 163
8.1.1 聚合函数概述 163
8.1.2 SUM(求和)函数 164
8.1.3 AVG(平均值)函数 165
8.1.4 MIN(最小值)函数 165
8.1.5 MAX(最大值)函数 166
8.1.6 COUNT(统计)函数 167
8.1.7 DISTINCT(取不重复记录)函数 168
8.1.8 查询重复记录 169
8.2 数学函数 169
8.2.1 数学函数概述 169
8.2.2 ABS(绝对值)函数 170
8.2.3 PI(圆周率)函数 170
8.2.4 POWER(乘方)函数 171
8.2.5 RAND(随机浮点数)函数 171
8.2.6 ROUND(四舍五入)函数 171
8.2.7 SQUARE(平方)函数和SQRT(平方根)函数 172
8.2.8 三角函数 173
8.3 字符串函数 174
8.3.1 字符串函数概述 174
8.3.2 ASCII(获取ASCII码)函数 175
8.3.3 CHARINDEX(返回字符串的起始位置)函数 176
8.3.4 LEFT(取左边指定个数的字符)函数 177
8.3.5 RIGHT(取右边指定个数的字符)函数 177
8.3.6 LEN(返回字符个数)函数 178
8.3.7 REPLACE(替换字符串)函数 179
8.3.8 REVERSE(返回字符表达式的反转)函数 179
8.3.9 STR函数 179
8.3.10 SUBSTRING(取字符串)函数 180
8.4 日期和时间函数 181
8.4.1 日期和时间函数概述 181
8.4.2 GETDATE(返回当前系统日期和时间)函数 181
8.4.3 DAY(返回指定日期的天)函数 182
8.4.4 MONTH(返回指定日期的月)函数 182
8.4.5 YEAR(返回指定日期的年)函数 182
8.4.6 DATEDIFF(返回日期和时间的边界数)函数 183
8.4.7 DATEADD(添加日期时间)函数 184
8.5 转换函数 184
8.5.1 转换函数概述 184
8.5.2 CAST函数 185
8.5.3 CONVERT函数 186
8.6 元数据函数 187
8.6.1 元数据函数概述 187
8.6.2 COL_LENGTH函数 187
8.6.3 COL_NAME函数 188
8.6.4 DB_NAME函数 188
8.7 综合实例——查看商品信息表中价格最贵的记录 189
知识点提炼 189
习题 190
实验:显示商品信息表中的平均价格 190
实验目的 190
实验内容 190
实验步骤 190
第9章 存储过程和触发器 191
9.1 存储过程概述 191
9.1.1 存储过程的概念 191
9.1.2 存储过程的优点 191
9.2 存储过程的创建与管理 192
9.2.1 使用向导创建存储过程 192
9.2.2 使用CREATE PROC语句创建存储过程 194
9.2.3 执行存储过程 194
9.2.4 查看存储过程 196
9.2.5 修改存储过程 198
9.2.6 重命名存储过程 200
9.2.7 删除存储过程 201
9.3 触发器概述 203
9.3.1 触发器的概念 203
9.3.2 触发器的优点 203
9.3.3 触发器的种类 203
9.4 触发器的创建与管理 204
9.4.1 创建DML触发器 204
9.4.2 创建DDL触发器 206
9.4.3 创建登录触发器 207
9.4.4 查看触发器 209
9.4.5 修改触发器 209
9.4.6 重命名触发器 212
9.4.7 禁用和启用触发器 212
9.4.8 删除触发器 214
9.5 综合实例——使用触发器向MingRiBook数据库的user表中添加数据 215
知识点提炼 216
习题 216
实验:使用T-SQL语句创建存储过程并执行 217
实验目的 217
实验内容 217
实验步骤 217
第10章 游标的使用 218
10.1 游标的概述 218
10.1.1 游标的实现 218
10.1.2 游标的类型 219
10.2 游标的基本操作 219
10.2.1 声明游标 219
10.2.2 打开游标 222
10.2.3 读取游标中的数据 222
10.2.4 关闭游标 224
10.2.5 释放游标 224
10.3 使用系统过程查看游标 225
10.3.1 sp_cursor_list 225
10.3.2 sp_describe_cursor 226
10.4 综合实例——利用游标在商品表中返回指定商品行数据 227
知识点提炼 228
习题 228
实验:关闭释放游标 228
实验目的 228
实验内容 229
实验步骤 229
第11章 事务与锁 230
11.1 事务的概念 230
11.2 显式事务与隐式事务 231
11.2.1 显式事务 231
11.2.2 隐式事务 232
11.2.3 API中控制隐式事务 233
11.2.4 事务的COMMIT和ROLLBACK 233
11.3 使用事务 233
11.3.1 开始事务 233
11.3.2 结束事务 234
11.3.3 回滚事务 235
11.3.4 事务的工作机制 235
11.3.5 自动提交事务 236
11.3.6 事务的并发问题 236
11.3.7 事务的隔离级别 237
11.4 锁 239
11.4.1 SQL Server锁机制 239
11.4.2 锁模式 240
11.4.3 锁的粒度 241
11.4.4 查看锁 242
11.4.5 死锁 242
11.5 分布式事务处理 243
11.5.1 分布式事务简介 243
11.5.2 创建分布式事务 243
11.5.3 分布式处理协调器 244
11.6 综合实例——使用事务对表进行添加和查询操作 244
知识点提炼 245
习题 245
实验:使用事务完成对表的修改和删除操作 245
实验目的 245
实验内容 245
实验步骤 245
第12章 SQL Server 2008的维护 247
12.1 分离和附加数据库 247
12.1.1 分离数据库 247
12.1.2 附加数据库 248
12.2 导入导出数据 250
12.2.1 导入SQL Server数据表 250
12.2.2 导入其他数据源的数据 254
12.3.3 导出SQL Server数据表 259
12.3 备份和恢复数据库 263
12.3.1 备份类型 264
12.3.2 恢复模式 264
12.3.3 备份数据库 264
12.3.4 恢复数据库 267
12.4 收缩数据库和文件 269
12.4.1 自动收缩数据库 269
12.4.2 手动收缩数据库 270
12.5 生成与执行SQL脚本 271
12.5.1 将数据库生成SQL脚本 271
12.5.2 将数据表生成SQL脚本 272
12.5.3 执行SQL脚本 273
12.6 综合实例——查看用户创建的所有数据库 274
知识点提炼 275
习题 275
实验:查看硬盘分区 275
实验目的 275
实验内容 275
实验步骤 275
第13章 SQL Server 2008数据库安全 277
13.1 数据库安全概述 277
13.2 登录管理 277
13.2.1 验证模式 277
13.2.2 创建与删除登录名 278
13.2.3 更改登录用户验证方式 282
13.2.4 密码策略 283
13.3 用户及权限管理 284
13.3.1 创建与删除数据库用户 284
13.3.2 设置服务器角色权限 286
13.4 综合实例——设置数据库的访问权限 287
知识点提炼 288
习题 289
实验:创建数据库用户账户 289
实验目的 289
实验内容 289
实验步骤 289
第14章 综合案例——图书综合管理系统 291
14.1 需求分析 291
14.2 总体设计 292
14.2.1 系统目标 292
14.2.2 构建开发环境 292
14.2.3 系统功能结构 292
14.2.4 业务流程图 293
14.3 数据库设计 294
14.3.1 数据库概要说明 294
14.3.2 数据库E-R图 295
14.3.3 数据表结构 296
14.4 公共模块设计 299
14.4.1 函数准备 299
14.4.2 控件准备 300
14.4.3 公共模块设计 300
14.5 主要模块开发 301
14.5.1 系统登录设计 301
14.5.2 程序主窗体 304
14.5.3 图书类别管理 308
14.5.4 读者信息管理 312
14.5.5 入库管理 317
14.5.6 入库查询 324
14.5.7 库存上下限设置 328
14.5.8 销量分析 329
14.5.9 添加操作员 331
14.5.10 库存打印报表 334
14.6 程序调试 338
14.6.1 如何锁定DataGrid表格的指定列 338
14.6.2 数据批量录入 338
14.6.3 字段长度问题导致数据添加失败 339
14.6.4 ADO控件记录源命令类型设置错误出现的问题 340
第15章 课程设计——ASP.NET+SQL Server 2008实现图书馆管理系统 341
15.1 课程设计目的 341
15.2 功能描述 342
15.3 总体设计 342
15.3.1 构建开发环境 342
15.3.2 网站功能结构 342
15.3.3 业务流程图 342
15.4 数据库设计 343
15.4.1 实体E-R图 344
15.4.2 数据表设计 345
15.4.3 视图设计 347
15.5 实现过程 348
15.5.1 母版页设计 348
15.5.2 图书馆管理系统首页设计 350
15.5.3 图书馆信息页设计 352
15.5.4 查看图书信息页设计 354
15.5.5 添加/修改图书信息页设计 355
15.5.6 图书借阅页设计 357
15.5.7 图书归还页设计 359
15.6 调试运行 360
15.7 课程设计总结 360
第16章 课程设计——JSP+SQL Server 2008实现博客网站 361
16.1 课程设计目的 361
16.2 功能描述 362
16.3 总体设计 362
16.3.1 构建开发环境 362
16.3.2 网站功能结构 362
16.3.3 业务流程图 363
16.4 数据库设计 364
16.4.1 实体E-R图 365
16.4.2 数据表设计 366
16.5 实现过程 367
16.5.1 系统配置 367
16.5.2 系统登录模块设计 368
16.5.3 用户注册模块设计 372
16.5.4 文章管理模块设计 375
16.5.5 相册管理模块设计 379
16.6 调试运行 383
16.7 课程设计总结 383