第1章 数据库与SQL Server2008 1
1.1 数据库与关系数据库 2
1.1.1 数据库简介 2
1.1.2 数据库模型 3
1.1.3 关系数据库简介 5
1.2 关系数据库术语 5
1.3 数据库建模 6
1.3.1 范式理论 6
1.3.2 实体-关系模型 8
1.4 实践案例:将E-R模型转换为关系模型 10
1.5 SQL Server2008的简介 12
1.5.1 SQLServet的发展历史 13
1.5.2 SQL Server 2008的新特性 14
1.6 实践案例:安装SQL Server2008 14
1.7 实践案例:升级为SQL Server 2008 18
1.8 卸载SQL Server2008 20
1.9 思考与练习 22
1.10 练一练 23
第2章 使用SQL Server 2008的管理工具 25
2.1 SQLServer配置管理器 26
2.1.1 管理服务 26
2.1.2 管理服务器和协议 27
2.1.3 本地客户端协议配置 28
2.2 实践案例:配置命名管道 29
2.3 SQL Server Management Studio 30
2.3.1 SQLSMS简介 30
2.3.2 注册服务器 31
2.3.3 配置服务器 33
2.4 实践案例:配置身份验证模式 34
2.5 sqlcmd工具 35
2.5.1 连接到数据库 35
2.5.2 执行语句 36
2.6 实践案例:使用输入和输出文件 37
2.7 其他管理工具 37
2.7.1 Business Intelligence Development Studio 38
2.7.2 数据库引擎优化顾问 38
2.7.3 SQL Server Profiler 40
2.7.4 Reporting Services配置 41
2.7.5 实用命令行工具 42
2.7.6 SQL Server联机丛书 43
2.8 思考与练习 44
2.9 练一练 44
第3章 SQL Server2008入门操作 47
3.1 系统数据库 48
3.2 数据库的组成 49
3.2.1 数据库元素 49
3.2.2 数据库文件 51
3.2.3 文件和文件组 52
3.2.4 数据库状态 52
3.3 实践案例:查询数据库和文件状态 54
3.4 创建数据库 55
3.4.1 使用SQLSMS工具创建 55
3.4.2 使用CREATE DATBASE 语句创建 58
3.5 实践案例:使用多文件组创建数据库 61
3.6 实践案例:修改数据库名称 62
3.7 删除数据库 64
3.7.1 使用SQLSMS工具删除 64
3.7.2 使用DROP DATABASE 删除 65
3.8 思考与练习 65
3.9 练一练 66
第4章 维护SQL Server2008 数据库 67
4.1 数据库快照 68
4.1.1 数据库快照简介 68
4.1.2 创建和删除数据库快照 68
4.2 实践案例:使用数据库快照 69
4.3 修改数据库 70
4.3.1 收缩数据库 70
4.3.2 收缩数据库文件 72
4.3.3 移动数据库文件 73
4.3.4 扩大数据库 74
4.4 分离和附加数据库 76
4.4.1 分离数据库 76
4.4.2 附加数据库 77
4.5 实践案例:使用语句分离和附加数据库 78
4.6 生成SQL脚本 79
4.6.1 将数据表生成SQL脚本 79
4.6.2 将数据库生成SQL脚本 80
4.7 实践案例:导入/导出数据 82
4.8 备份数据库 85
4.8.1 SQL Server备份类型 85
4.8.2 SQL Server备份设备 86
4.8.3 通过图形向导备份数据库 88
4.8.4 使用BACKUP语句备份数据库 90
4.8.5 执行差异备份 91
4.9 恢复数据库 92
4.9.1 SQL Server恢复模式简介 92
4.9.2 配置恢复模式 93
4.9.3 使用图形化向导恢复数据库 94
4.9.4 使用RESTORE语句恢复数据库 95
4.10 思考与练习 96
4.11 练一练 97
第5章 操作数据表 99
5.1 SQLServer表 100
5.1.1 什么是表 100
5.1.2 临时表 101
5.1.3 系统表 101
5.2 定义列的数据类型 102
5.2.1 基本数据类型 103
5.2.2 创建用户定义的数据类型 105
5.3 实践案例:使用系统存储过程管理自定义类型 106
5.4 创建数据表 107
5.4.1 使用SQLSMS创建 107
5.4.2 使用语句创建 109
5.5 实践案例:使用SQLSMS操作表 109
5.5.1 添加数据 110
5.5.2 修改数据 111
5.5.3 删除数据 111
5.6 修改表 112
5.6.1 表名 113
5.6.2 表属性 114
5.6.3 列 115
5.7 删除表 117
5.8 思考与练习 117
5.9 练一练 118
第6章 表的完整性约束 121
6.1 约束概述 122
6.1.1 约束简介 122
6.1.2 约束的分类 122
6.2 默认值对象 123
6.2.1 创建默认值语法格式 123
6.2.2 绑定默认值 124
6.2.3 查看默认值 124
6.2.4 删除默认值 126
6.3 规则对象 126
6.3.1 创建规则的语法格式 126
6.3.2 绑定规则 126
6.3.3 查看规则 128
6.3.4 删除规则 128
6.4 实现列的基本约束 129
6.4.1 主键约束 129
6.4.2 外键约束 130
6.4.3 自动编号约束 131
6.4.4 非空约束 132
6.4.5 唯一性约束 134
6.4.6 默认值约束 136
6.4.7 验证约束 137
6.5 实践案例:设计图书信息表约束规则 139
6.6 思考与练习 141
6.7 练一练 142
第7章 T-SQL语言编程入门 143
7.1 T-SQL语言简介 144
7.2 语法基础 145
7.2.1 常量 145
7.2.2 变量 146
7.2.3 注释 149
7.3 运算符 149
7.3.1 赋值运算符 149
7.3.2 算术运算符 150
7.3.3 字符串连接运算符 151
7.3.4 比较运算符 152
7.3.5 逻辑运算符 153
7.3.6 一元运算符 154
7.3.7 位运算符 154
7.3.8 运算符优先级 155
7.4 流程语句 156
7.4.1 语句块 156
7.4.2 条件语句 157
7.4.3 分支语句 158
7.4.4 循环语句 161
7.4.5 错误处理语句 162
7.4.6 其他语句 163
7.5 实践案例:使用WHILE循环输出一个倒三角形 165
7.6 游标 166
7.6.1 定义游标 166
7.6.2 打开游标 166
7.6.3 检索游标 167
7.6.4 关闭与删除游标 168
7.7 思考与练习 168
7.8 练一练 169
第8章 T-SQL高级编程 171
8.1 系统函数 172
8.1.1 数据类型转换函数 172
8.1.2 日期时间函数 173
8.1.3 聚合函数 174
8.1.4 数学函数 175
8.1.5 字符串函数 176
8.2 自定义函数 178
8.2.1 自定义函数简介 178
8.2.2 标量值函数 179
8.2.3 表值函数 181
8.2.4 删除用户定义函数 183
8.3 事务 183
8.3.1 事务的概念 183
8.3.2 事务类型 185
8.3.3 事务控制语句 186
8.4 实践案例:使用事务模拟银行转账操作 187
8.5 锁 190
8.5.1 锁机制 190
8.5.2 SQL Server锁模式 192
8.5.3 查看锁 193
8.6 思考与练习 194
8.7 练一练 195
第9章 T-SQL修改表数据 197
9.1 插入数据 198
9.1.1 INSERT语句简介 198
9.1.2 INSERT语句语法详解 199
9.1.3 插入单条记录 202
9.1.4 省略INSERT INTO子句列表 203
9.1.5 处理NULL值 203
9.1.6 使用INSERT SELECT 语句 204
9.1.7 使用SELECT INTO 语句 206
9.2 实践案例:向自增列中添加数据 207
9.3 实践案例:使用INSERT语句插入多行数据 208
9.4 更新数据 209
9.4.1 UPDATE语句语法详解 209
9.4.2 基于表中数据的更新 210
9.4.3 基于其他表的更新 211
9.4.4 使用TOP表达式 212
9.5 实践案例:同时更新多列 213
9.6 删除数据 213
9.6.1 DELETE语句语法详解的示例 213
9.6.2 使用DELETE语句的示例 214
9.6.3 基于其他表删除数据 215
9.6.4 TRUNCATE TABLE语句的用法 215
9.7 思考与练习 216
9.8 练一练 217
第10章 T-SQL查询数据 219
10.1 SELECT 语句语法 220
10.2 简单查询 220
10.2.1 查询所有列 220
10.2.2 查询指定列 221
10.2.3 避免重复项 222
10.2.4 返回部分结果 223
10.2.5 为结果列使用别名 224
10.2.6 查询计算列 225
10.3 条件查询 226
10.3.1 比较条件 226
10.3.2 逻辑条件 227
10.3.3 列表条件 228
10.3.4 范围条件 229
10.3.5 模糊条件 230
10.3.6 未知条件 231
10.4 操作查询结果 232
10.4.1 ORDER BY子句 232
10.4.2 GROUP BY子句 233
10.4.3 HAVING子句 235
10.5 实践案例:查询药品信息 235
10.6 思考与练习 237
10.7 练一练 238
第11章 T-SQL复杂查询 239
11.1 实现子查询 240
11.1.1 使用比较运算符 240
11.1.2 单值子查询 241
11.1.3 使用IN关键字 242
11.1.4 使用EXISTS关键字 243
11.1.5 嵌套子查询 244
11.2 多表连接 245
11.2.1 基本连接操作 245
11.2.2 使用别名 246
11.2.3 多表连接查询 247
11.2.4 使用JOIN关键字连接查询 248
11.3 内连接 249
11.3.1 等值连接查询 250
11.3.2 非等值连接查询 251
11.3.3 自然连接查询 251
11.4 外连接 252
11.4.1 左外连接查询 252
11.4.2 右外连接查询 253
11.4.3 完全外连接查询 254
11.5 自连接 255
11.6 交叉连接 255
11.7 联合查询 257
11.8 实践案例:查询学生信息 258
11.9 思考与练习 260
11.10 练一练 261
第12章 管理数据库对象 263
12.1 架构 264
12.1.1 架构简介 264
12.1.2 使用SQLSMS创建架构 265
12.1.3 使用语句创建架构 266
12.1.4 修改架构 267
12.1.5 删除架构 269
12.2 实践案例:移动对象到架构 270
12.3 视图 271
12.3.1 视图简介 271
12.3.2 使用SQLSMS创建视图 272
12.3.3 使用语句创建视图 274
12.3.4 查看视图 275
12.3.5 修改视图 275
12.3.6 删除视图 276
12.4 实践案例:使用视图更新数据 277
12.5 索引 279
12.5.1 索引简介 279
12.5.2 索引类型 280
12.5.3 索引的使用标准 284
12.6 索引的使用方法 285
12.6.1 创建索引 285
12.6.2 修改索引 288
12.6.3 删除索引 289
12.6.4 查看索引属性 290
12.7 思考与练习 291
12.8 练一练 293
第13章 触发器编程 295
13.1 触发器简介 296
13.2 DML触发器 297
13.2.1 创建DML触发器语法 297
13.2.2 INSERT触发器 298
13.2.3 DELETE触发器 300
13.2.4 UPDATE触发器 301
13.2.5 INSTEAD OF触发器 302
13.3 管理触发器 303
13.3.1 禁用与启用 303
13.3.2 修改触发器 305
13.3.3 删除触发器 306
13.4 触发器的高级应用 306
13.4.1 DDL触发器 306
13.4.2 嵌套触发器 309
13.4.3 递归触发器 311
13.5 思考与练习 313
13.6 练一练 314
第14章 存储过程编程 315
14.1 存储过程的种类 316
14.1.1 系统存储过程 316
14.1.2 扩展存储过程 319
14.1.3 用户自定义存储过程 319
14.2 创建存储过程 320
14.2.1 普通存储过程 321
14.2.2 临时存储过程 323
14.2.3 加密存储过程 324
14.3 实践案例:使用存储过程的嵌套形式 325
14.4 存储过程的操作 326
14.4.1 执行存储过程 326
14.4.2 查看存储过程 327
14.4.3 修改存储过程 328
14.4.4 删除存储过程 330
14.5 带参数的存储过程 330
14.5.1 指定参数名称 330
14.5.2 指定输入参数 332
14.5.3 指定输出参数 333
14.6 实践案例:使用带默认值的存储过程 334
14.7 思考与练习 335
14.8 练一练 336
第15章 SQL Server高级编程 337
15.1 XML编程 338
15.1.1 XML数据类型 338
15.1.2 XML查询 339
15.1.3 XML索引 345
15.1.4 OPENXML函数 348
15.2 实践案例:操作XML数据 350
15.3 CLR编程 354
15.3.1 CLR简介 354
15.3.2 创建CLR 项目 354
15.3.3 编写触发器 356
15.3.4 编写存储过程 359
15.3.5 编写普通函数 361
15.3.6 编写聚合函数 364
15.4 实践案例:使用CLR编写自定义类型 367
15.5 SMO编程 369
15.5.1 创建SMO项目 369
15.5.2 创建SQL Server连接 372
15.5.3 创建数据库 375
15.5.4 创建数据表 375
15.5.5 编写触发器 377
15.5.6 编写存储过程 378
15.6 思考与练习 379
15.7 练一练 381
第16章 管理数据库安全 383
16.1 SQL Server的安全机制 384
16.1.1 客户级安全 384
16.1.2 网络传输级安全 384
16.1.3 服务器级安全 385
16.1.4 数据库级安全 385
16.1.5 对象级安全 386
16.2 SQL Server的身份验证模式 386
16.2.1 Windows身份验证 387
16.2.2 混合身份验证 387
16.3 实践案例:更改验证模式 388
16.4 登录名 389
16.4.1 系统登录名 390
16.4.2 Windows登录名 390
16.4.3 SQL Server登录名 393
16.5 实践案例:管理登录名 396
16.5.1 使用图形化界面查看用户 396
16.5.2 使用图形化界面修改用户属性 396
16.5.3 使用图形化界面删除用户 398
16.5.4 通过命令创建和删除登录账户 398
16.5.5 使用存储过程管理登录账户 400
16.6 数据库用户 400
16.6.1 系统数据库用户 401
16.6.2 使用向导创建数据库用户 402
16.6.3 使用存储过程创建数据库用户 403
16.7 权限 403
16.7.1 权限的类型 403
16.7.2 授予权限 404
16.7.3 撤销权限 405
16.7.4 拒绝权限 406
16.8 角色种类 406
16.8.1 服务器角色 406
16.8.2 数据库角色 407
16.9 管理服务器角色 409
16.9.1 为角色分配登录名 409
16.9.2 将角色指派到多个登录名 410
16.10 管理数据库角色 411
16.10.1 为角色分配登录名 411
16.10.2 数据库角色 413
16.10.3 应用程序角色 415
16.11 课后练习 415
16.12 练一练 417
第17章 产品展示模块 419
17.1 系统分析 420
17.1.1 需求分析 420
17.1.2 数据库设计 421
17.2 公共部分 421
17.2.1 创建项目及设置配置文件 422
17.2.2 页面样式 422
17.2.3 实现母版页 424
17.3 产品展示 427
17.3.1 实现产品展示 427
17.3.2 查看产品 429
17.3.3 新增产品 430
17.3.4 产品管理 432
17.4 管理产品分类 434
参考答案 439