第1章SQL Server 2008入门 1
1.1数据库基础 1
1.1.1数据库基本概念 1
1.1.2数据库系统模型 2
1.1.3关系数据库 3
1.2认识SQL Server 2008 5
1.2.1 SQL Server发展历史 5
1.2.2 SQL Server 2008体系结构 6
1.3 SQL Server 2008新增功能 9
1.3.1新的日期数据类型 9
1.3.2 LINQ语言 10
1.3.3 HierarchyId类型 11
1.3.4增强XML功能 11
1.3.5 Transact-SQL语言增强 14
1.3.6报表服务 15
1.4安装与配置SQL Server 2008 16
1.4.1安装SQL Server 2008 16
1.4.2配置SQL Server 2008 25
1.5 SQL Serve管理工具 29
1.5.1 SQL Server Management Studio 29
1.5.2 SQL Server配置管理器 30
1.5.3 SQL Server Profiler 31
1.5.4数据库引擎优化顾问 32
1.5.5 Reporting Services配置管理器 33
1.5.6命令提示实用工具 33
1.6扩展练习 34
第2章 创建数据库 36
2.1 SQL Server数据库概述 36
2.1.1常见数据库对象 36
2.1.2数据库构成 39
2.1.3数据库文件和文件组 41
2.2创建数据库的方法 42
2.2.1使用图形化向导创建 42
2.2.2使用Transact-SQL语句创建 46
2.3管理数据库 51
2.3.1查看数据库信息 51
2.3.2修改数据库的大小 54
2.3.3删除数据库 55
2.3.4其他数据库操作 56
2.4创建数据库快照 59
2.4.1数据库快照简介 59
2.4.2创建数据库快照的方法 60
2.5扩展练习 62
第3章 创建数据表 65
3.1表的概述 65
3.2操作数据表 66
3.2.1创建表 66
3.2.2修改表 69
3.2.3添加和删除列 72
3.2.4修改列 73
3.3列数据类型和属性 73
3.3.1数据类型 73
3.3.2列的其他属性 80
3.4表数据完整性 82
3.4.1表主键 83
3.4.2外键 85
3.4.3约束 86
3.4.4表关系 87
3.5扩展练习 88
第4章 使用Transact-SQL编程 90
4.1 Transact-SQL概述 90
4.1.1 Transact-SQL语言与SQL语言 90
4.1.2 Transact-SQL语言类型 91
4.2编程基础 92
4.2.1常量与变量 92
4.2.2运算符 94
4.2.3表达式 98
4.2.4注释 99
4.2.5控制流程 100
4.3常用函数 105
4.3.1聚合函数 105
4.3.2数学函数 106
4.3.3字符串函数 107
4.3.4日期和时间函数 109
4.3.5自定义函数 110
4.4事务 112
4.4.1事务概述 112
4.4.2 ACID属性 113
4.4.3管理事务 114
4.4.4分布式事务 117
4.5锁 117
4.5.1并发问题 117
4.5.2锁模式 118
4.5.3查看锁 119
4.6游标 121
4.6.1游标概述 121
4.6.2使用游标 122
4.7扩展练习 124
第5章 数据查询和管理 125
5.1 SELECT简单查询 125
5.1.1 SELECT基本语法 125
5.1.2使用SELECT语句 127
5.1.3使用FROM子句 131
5.1.4使用WHERE子句 131
5.1.5使用ORDER BY子句 139
5.1.6使用GROUP BY子句 140
5.1.7使用HAVING子句 141
5.2 SELECT高级查询 141
5.2.1基本连接 141
5.2.2 JOIN关键字 143
5.2.3内连接 143
5.2.4外连接 145
5.2.5交叉连接 147
5.2.6自连接 148
5.2.7联合查询 149
5.3使用子查询 150
5.3.1返回多行的子查询 150
5.3.2返回单值的子查询 153
5.3.3嵌套子查询 153
5.4 XML查询 154
5.4.1 XML数据类型 154
5.4.2 XQuery查询方法 155
5.4.3 FOR XML子句 159
5.5扩展练习 162
第6章 表数据操作 165
6.1 INSERT语句 165
6.1.1使用INSERT VALUES语句 165
6.1.2使用INSERT SELECT语句 166
6.1.3使用SELECT INTO语句创建表 168
6.2 UPDATE语句 169
6.2.1 UPDATE语法 169
6.2.2根据表中数据更新行 170
6.2.3根据其他表更新行 171
6.2.4使用TOP表达式 173
6.3 DELETE语句 173
6.3.1 DELETE语法 174
6.3.2使用DELETE语句 174
6.3.3使用TRUNCATE TABLE语句 175
6.4新增语句 177
6.4.1 ON DELETE和ONUPDATE 177
6.4.2 OUTPUT 179
6.5扩展练习 181
第7章 索引与视图 183
7.1索引基础知识 183
7.1.1认识索引 183
7.1.2索引结构 184
7.1.3索引类型 185
7.2创建索引 188
7.2.1使用图形工具创建索引 189
7.2.2使用CREATE INDEX创建索引 190
7.2.3创建XML索引 192
7.3管理索引 194
7.3.1修改和删除索引 194
7.3.2查看索引信息 195
7.4认识视图 198
7.4.1视图概述 198
7.4.2创建视图 199
7.5管理视图 201
7.5.1修改和删除视图 201
7.5.2查看视图信息 204
7.6通过视图修改数据 205
7.6.1使用INSERT插入数据 206
7.6.2使用UPDATE更新数据 207
7.6.3使用DELETE删除数据 208
7.7使用数据库引擎优化顾问 208
7.8扩展练习 210
第8章 存储过程与触发器 212
8.1认识存储过程 212
8.1.1存储过程概述 212
8.1.2存储过程的分类 213
8.2使用存储过程 214
8.2.1创建存储过程 214
8.2.2执行存储过程 217
8.2.3存储过程参数 219
8.2.4删除存储过程 223
8.2.5管理存储过程 224
8.3其他存储过程 225
8.3.1系统存储过程 225
8.3.2扩展存储过程 226
8.4异常处理与调试 228
8.4.1异常处理 228
8.4.2调试 230
8.5认识触发器 232
8.5.1触发器概述 232
8.5.2触发器的分类 233
8.5.3触发器完整性规则 234
8.5.4创建触发器 235
8.6使用触发器 236
8.6.1 DML触发器 236
8.6.2 DDL触发器 240
8.6.3嵌套触发器 241
8.6.4递归触发器 242
8.6.5管理触发器 243
8.7扩展练习 245
第9章 安全管理与数据库维护 248
9.1数据库安全性概述 248
9.1.1 SQL Server 2008安全管理新特性 248
9.1.2 SQL Server 2008安全性机制 249
9.1.3 SQL Server 2008安全主体 250
9.2管理SQL Server服务器安全性 251
9.2.1身份验证模式 252
9.2.2管理登录账号 256
9.2.3管理用户 258
9.3管理角色 261
9.3.1固定服务器角色 261
9.3.2固定数据库角色 264
9.3.3应用程序角色 267
9.3.4用户自定义角色 268
9.4管理架构 271
9.4.1创建架构 271
9.4.2修改架构 274
9.4.3移动对象到新的架构 275
9.4.4删除架构 277
9.5管理权限 277
9.5.1对象权限 277
9.5.2语句权限 278
9.5.3删除权限 281
9.6 扩展练习 282
第10章 数据库备份与恢复 285
10.1备份和恢复概述 285
10.1.1数据库的备份操作和对象 285
10.1.2备份体系结构 286
10.1.3恢复体系结构 287
10.2备份设备 288
10.2.1备份设备的分类 288
10.2.2创建备份设备 289
10.2.3管理备份设备 291
10.3备份数据 293
10.3.1创建完整备份 293
10.3.2创建差异备份 297
10.3.3创建事务日志备份 300
10.3.4创建文件组备份 304
10.3.5备份压缩 307
10.4恢复数据 309
10.4.1常规恢复 309
10.4.2时间点恢复 311
10.5复制数据库 312
10.6扩展练习 313
第11章SQL Server 2008高级主题 315
11.1.NET Framework集成 315
11.1.1.NET Framework概述 315
11.1.2 CLR概述 317
11.1.3 ADO.NET概述 318
11.2创建.NET程序 321
11.2.1创建SQL Server项目 321
11.2.2用户自定义函数 322
11.2.3存储过程 326
11.2.4触发器 328
11.2.5创建用户定义类型 330
11.3数据访问概述 334
11.3.1 System.Data.SqlClient命名空间 334
11.3.2 ADO.NET 2.0 335
11.3.3 System.Data.SqlTypes命名空间 341
11.4服务体系 342
11.4.1通知服务 343
11.4.2分析服务 345
11.4.3报表服务 347
11.4.4集成服务 350
11.5扩展练习 352
附录 实验指导 355
第1单元 355
练习1-1注册服务器 355
练习1-2隐藏SQL Server 2008
实例 356
练习1-3使用sqlcmd操作数据库 358
练习1-4创建数据库和表 359
第2单元 361
练习2-1创建人事管理数据库 361
练习2-2修改人事管理数据库的大小 362
练习2-3移动人事管理数据库 364
第3单元 367
练习3-1创建员工信息表 367
练习3-2修改列 367
练习3-3修改表的访问权限 369
练习3-4创建表关系 370
第4单元 371
练习4-1按房间类型查看房间信息 371
练习4-2查看价格大于500的房间信息 372
练习4-3使用自连接查询 373
练习4-4使用子查询 373
练习4-5使用模糊查询 374
练习4-6使用For XML子句 374
第5单元 375
练习5-1创建临时表 375
练习5-2更新人事管理记录 376
练习5-3删除人事管理记录 377
第6单元 377
练习6-1使用AND和OR表达式的查询 377
练习6-2创建内嵌表值型用户自定义函数 378
练习6-3打印九九乘法表 379
练习6-4创建游标 380
练习6-5事务回滚 381
第7单元 382
练习7-1创建表的索引 382
练习7-2创建并查询视图 383
练习7-3通过视图修改数据 385
第8单元 386
练习8-1创建作者作品查询存储过程 386
练习8-2创建更新价格的存储过程 387
练习8-3创建分页存储过程 388
练习8-4创建触发器 389
练习8-5修改触发器 390
练习8-6嵌套触发器 392
练习8-7使用INSTEAD OF触发器 393
第9单元 395
练习9-1 SQL Server 2008的登录认证 395
练习9-2创建登录名 397
练习9-3创建Windows登录 398
练习9-4用户自定义角色 401
练习9-5授予权限操作 403
第10单元 404
练习10-1完整备份 404
练习10-2设计事务日志备份 407
练习10-3创建文件组备份 409
练习10-4备份文件组 410
练习10-5恢复数据 412
第11单元 414
练习11-1使用ADO.NET连接数据库 414
练习11-2创建报表模型 415
练习11-3使用ADO.NET操作数据库 420
练习11-4使用导入/导出向导生成程序包 423