第1章 关系数据库系统与SQL Server简介 1
1.1 数据库管理系统 1
1.1.1 个人系统 1
1.1.2 客户/服务器系统 2
1.1.3 基于Web服务器的系统 2
1.1.4 选择应用程序技术 3
1.2 实体关系系统 3
1.3 关系数据库模型深入介绍 5
1.3.1 主键 6
1.3.2 范式 6
1.3.3 关系与外键 10
1.3.4 对象关系模型 11
1.4 安装SQL Server工具 12
1.4.1 安装SQL Server数据库管理系统 14
1.4.2 为远程访问配置SQL Server 16
1.4.3 安装Visual Studio 18
1.5 浏览SQL Server环境 20
1.5.1 使用Management Studio 20
1.5.2 Visual Studio工具 21
1.5.3 SQL Server Management Studio 22
1.6 本书数据库简介 23
1.6.1 Redwood Realty 24
1.6.2 Coffee Merchant 26
1.6.3 Rowing Ventures 28
1.6.4 Broadcloth Clothing 29
1.7 小结 32
1.8 关键术语 32
1.9 复习 33
1.9.1 判断题 33
1.9.2 填空题 33
1.9.3 多项选择题 33
1.10 实际练习 34
第2章 SQL概述及与SQL Server的连接 36
2.1 简介 36
2.1.1 SQL命令的类型 36
2.1.2 SQL语句的解析 37
2.1.3 获得在线帮助 38
2.2 与数据库的连接 40
2.3 使用SQLCMD命令行工具 40
2.3.1 启动SQLCMD并运行SQL命令 41
2.3.2 读取、列表、编辑和运行T-SQL脚本文件 44
2.3.3 为打印捕获文件 47
2.3.4 获得帮助 49
2.3.5 退出SQLCMD 49
2.4 使用SQL Server Management Studio 49
2.4.1 编辑Transact-SQL代码 49
2.4.2 连接到SQL Server 50
2.4.3 创建新的解决方案 51
2.4.4 输入和运行T-SQL命令 52
2.4.5 编辑SQL命令 54
2.4.6 保存查询修改 55
2.4.7 退出SQL Server Management Studio 55
2.4.8 打开解决方案 56
2.4.9 使用查询结果 58
2.4.10 浏览Management Studio的面板 59
2.5 了解SQL语句 63
2.5.1 运行查询 65
2.5.2 检查DDL语句 66
2.5.3 探究DML语句 68
2.5.4 事务控制语句初探 72
2.5.5 数据控制语言语句的回顾 74
2.6 浏览选择的SQL Server系统视图 75
2.6.1 使用Object Explorer面板显示系统视图 75
2.6.2 显示表和列的定义信息 77
2.6.3 使用Object Explorer面板显示表的结构和内容 78
2.7 小结 80
2.8 关键术语 80
2.9 复习 81
2.9.1 判断题 81
2.9.2 填空题 81
2.9.3 多项选择题 81
2.10 实际练习 82
第3章 创建、修改、重命名与删除数据库表 87
3.1 设计关系数据库 87
3.1.1 与数据库用户交流 87
3.1.2 识别用户需求 87
3.1.3 辨识商业对象 88
3.1.4 规范化设计 88
3.2 了解SQL Server用户账户 89
3.3 创建表 90
3.3.1 SQL Server数据类型 91
3.3.2 在Management Studio中创建表 96
3.4 所选择系统的保存过程 98
3.4.1 sp_help 99
3.4.2 sp_helpconstraint 99
3.4.3 sp_columns 100
3.5 定义和使用约束 100
3.5.1 了解约束 100
3.5.2 命名约束 100
3.5.3 定义约束 101
3.5.4 创建列约束和表约束 105
3.5.5 为列设置默认值 109
3.6 修改表及其约束 110
3.6.1 添加、允许使用或禁止使用约束 110
3.6.2 撤消或重命名约束 113
3.6.3 修改列的默认值或数据类型 114
3.6.4 添加、撤消及重命名列 115
3.7 显示表的名称、特征和约束 118
3.7.1 列出数据库表 118
3.7.2 回顾列信息 120
3.7.3 回顾表约束和列约束 121
3.8 撤消和重命名表 124
3.8.1 撤消表 124
3.8.2 重命名表 126
3.9 以其他表为基础创建表 127
3.10 小结 128
3.11 关键术语 129
3.12 复习 129
3.12.1 判断题 129
3.12.2 填空题 129
3.12.3 多项选择题 129
3.13 实际练习 130
第4章 修改数据与审计表选项 135
4.1 向表中插入行 135
4.1.1 指定列列表 138
4.1.2 处理完整性约束 139
4.1.3 省略列列表 140
4.1.4 插入日期和时间 142
4.1.5 从其他数据库表插入日期 145
4.1.6 在表中指定标识列 147
4.2 更新数据 149
4.2.1 更新语句 150
4.2.2 CASE结构 153
4.2.3 使用CASE结构更新数据 154
4.3 删除行与截表 156
4.3.1 删除选定行 157
4.3.2 删除所有行 158
4.4 数据库事务 159
4.4.1 事务模式 160
4.4.2 T-SQL事务语句 161
4.5 创建和使用数据库触发器 165
4.5.1 触发器简介 165
4.5.2 创建和使用DDL触发器 167
4.5.3 创建和测试BEFORE触发器 169
4.5.4 创建和测试AFTER触发器 171
4.5.5 创建和测试INSTEAD OF触发器 174
4.5.6 显示、修改、重命名和撤消触发器 177
4.6 小结 184
4.7 关键术语 185
4.8 复习 185
4.8.1 判断题 185
4.8.2 填空题 185
4.8.3 多项选择题 186
4.9 实际练习题 186
第5章 查询数据库 193
5.1 从一个数据库表中检索显示数据 193
5.1.1 编写SELECT语句 193
5.1.2 选择所有列 196
5.1.3 使用DISTINCT显示唯一行 198
5.1.4 使用查找条件筛选结果 198
5.1.5 分类 205
5.1.6 在查询中包含计算 207
5.2 SQL函数 212
5.2.1 在查询中使用标量函数 213
5.2.2 使用聚集函数 226
5.3 小结 236
5.4 关键术语 236
5.5 复习 237
5.5.1 判断题 237
5.5.2 填空题 237
5.5.3 多项选择题 237
5.6 实际练习 237
第6章 创建多表查询和视图 243
6.1 创建和使用多表查询 243
6.1.1 连接具有匹配列值的表 244
6.1.2 了解其他连接类型和连接条件 249
6.1.3 探讨集合操作 260
6.1.4 使用子查询 264
6.2 创建和使用视图 276
6.2.1 视图提供了什么 276
6.2.2 定义和查询单表视图 277
6.2.3 使用单表视图修改数据 281
6.2.4 创建复杂视图 283
6.2.5 创建同义字简化表引用 287
6.2.6 列出视图定义 287
6.2.7 删除视图 289
6.3 小结 290
6.4 关键术语 290
6.5 复习 291
6.5.1 判断题 291
6.5.2 填空题 291
6.5.3 多项选择题 291
6.6 实际练习题 292
第7章 使用SQL扩展、创建并使用存储过程 300
7.1 存储过程与编码概述 300
7.1.1 存储过程的优点 300
7.1.2 探究代码块的类型 301
7.1.3 SQL扩展概述 301
7.2 创建匿名代码块 304
7.2.1 初始化Redwood Realty数据库 305
7.2.2 编写匿名代码块 306
7.2.3 编写代码文档 308
7.2.4 运行匿名T-SQL代码块 308
7.2.5 修改匿名代码块以显示多行 309
7.2.6 处理异常 310
7.3 理解显式游标 314
7.3.1 T-SQL迭代结构概述 314
7.3.2 使用显式游标与WHILE循环来处理行 315
7.3.3 IF语句概述 319
7.4 命名代码块概述 324
7.5 创建、使用、列出和删除函数 325
7.5.1 函数概述 325
7.5.2 创建并存储标量函数 325
7.5.3 调用用户定义函数 327
7.5.4 修改函数 329
7.5.5 创建并使用表值函数 331
7.5.6 列出并删除函数 333
7.6 创建、使用、列出与删除过程 336
7.6.1 过程的优点 336
7.6.2 创建并存储一个过程 336
7.6.3 调用存储过程 338
7.6.4 修改并保存过程 340
7.6.5 列出并删除过程 342
7.7 公共语言运行时(CLR)集成概述 344
7.7.1 在.NET语言与T-SQL过程之间选择 344
7.7.2 使用CLR集成:总体步骤 345
7.7.3 在SQL Server中允许使用CLR 345
7.7.4 使用Visual Basic.NET创建SQL Server函数 346
7.7.5 使用对象资源管理器查看程序集 350
7.7.6 测试CLR函数 351
7.7.7 删除CLR函数 352
7.8 小结 352
7.9 关键术语 353
7.10 复习 353
7.10.1 判断题 353
7.10.2 填空题 353
7.10.3 多项选择题 354
7.11 实际练习 354
第8章 使用Visual Studio创建数据库窗体 362
8.1 窗体概述 362
8.1.1 三种主窗体类型 362
8.1.2 窗体服务体系结构 364
8.1.3 Visual Studio窗体的基本结构 365
8.1.4 Visual Studio的元素 367
8.2 使用窗体生成器创建简单的主窗体 368
8.2.1 开始构建数据库窗体 369
8.2.2 使用窗体查询功能查找数据 373
8.3 修改窗体 374
8.3.1 设计视图 374
8.3.2 基本属性 374
8.3.3 添加静态图像 375
8.3.4 将图像添加到数据库中 377
8.3.5 添加查找列 380
8.3.6 创建组合框 381
8.3.7 单选按钮与复选框 384
8.4 创建表格窗体及其子窗体 386
8.4.1 创建表格窗体 386
8.4.2 创建主窗体和子窗体 388
8.4.3 在网格中显示额外的列 392
8.4.4 设置格式 393
8.5 小结 394
8.6 关键术语 394
8.7 复习 394
8.7.1 判断题 394
8.7.2 填空题 395
8.7.3 多项选择题 395
8.8 实际练习 395
第9章 自定义窗体 399
9.1 设置窗体结构 399
9.1.1 创建窗体与简单的表适配器 401
9.1.2 为查询创建表适配器 402
9.1.3 搜索功能的实现 405
9.2 设计窗体事件的代码 408
9.2.1 定义窗体事件 408
9.2.2 创建并编辑事件代码 410
9.2.3 在Visual Basic中执行通用数据命令 413
9.2.4 使用Visual Basic检查数据行 416
9.2.5 让窗体更高效 419
9.2.6 事件代码的调试 420
9.2.7 处理错误 421
9.2.8 理解窗体程序中的作用域与生命周期 424
9.3 创建有用的窗体工具 425
9.3.1 创建并使用标识列 425
9.3.2 验证窗体输入 430
9.3.3 计算网格数据的小计 433
9.4 使用多窗体 434
9.4.1 添加Tab控件 434
9.4.2 多窗体 437
9.4.3 评估窗体样式 438
9.5 小结 439
9.6 关键术语 440
9.7 复习 440
9.7.1 判断题 440
9.7.2 填空题 440
9.7.3 多项选择题 440
9.8 实际练习 441
第10章 报表的创建与修改 446
10.1 报表服务概述 446
10.1.1 Web发布与纸质报表 446
10.1.2 报表的类型 447
10.1.3 SQL Server报表服务 449
10.2 构建并修改报表 449
10.2.1 报表结构 450
10.2.2 报表生成器 451
10.2.3 通过修改布局来改进报表 454
10.2.4 不同的窗口 456
10.2.5 添加字段 458
10.3 矩阵报表 458
10.3.1 列的对齐与格式化 460
10.3.2 添加小计 461
10.3.3 添加条件格式 461
10.3.4 插入页号与日期 462
10.4 手工创建报表 463
10.4.1 显示数据库中的图像 467
10.5 控制报表中的数据 468
10.5.1 创建报表参数 468
10.5.2 创建下钻选项 471
10.5.3 用图表来自定义报表 472
10.5.4 让图表可交互 474
10.6 小结 476
10.7 关键术语 476
10.8 复习 477
10.8.1 判断题 477
10.8.2 填空题 477
10.8.3 多项选择题 477
10.9 实际练习 478
第11章 构建集成的应用程序 481
11.1 设计集成的数据库应用程序 481
11.1.1 组织Redwood Realty 482
11.1.2 外观一致性 483
11.1.3 创建模板窗体 484
11.1.4 应用模板窗体与属性 485
11.2 连接窗体与报表,形成应用程序 488
11.2.1 启动窗体 488
11.2.2 打开连接的窗体 489
11.2.3 在Web浏览器中显示报表 491
11.2.4 把报表显示在嵌入于窗体的Web浏览器中 494
11.2.5 使用ReportViewer显示报表 495
11.3 创建菜单 497
11.3.1 菜单所扮演的角色 497
11.3.2 构建菜单 498
11.3.3 创建菜单功能 498
11.3.4 菜单的部署与使用 500
11.4 创建帮助文件 501
11.4.1 HTML帮助系统 502
11.4.2 创建HTML帮助文件 503
11.4.3 使用帮助文件 506
11.5 应用程序的部署 508
11.5.1 应用程序属性 508
11.5.2 发布应用程序 509
11.6 小结 510
11.7 关键术语 510
11.8 复习 510
11.8.1 判断题 510
11.8.2 填空题 510
11.8.3 多项选择题 511
11.9 实际练习 511
第12章 数据库安全性的维护 513
12.1 创建并编辑用户账号 513
12.1.1 用户身份验证 514
12.1.2 用户角色 515
12.1.3 安全实体对象权限 517
12.2 控制用户对对象的访问 520
12.2.1 创建角色 520
12.2.2 授予与撤消权限 522
12.3 保障窗体与报表的安全 523
12.3.1 保障窗体安全 524
12.3.2 保障IIS报表的安全 526
12.3.3 对角色保障各个报表的安全 528
12.3.4 使用表权限保障报表安全 530
12.4 通过视图与过程强制权限 530
12.4.1 限制对选择的行与列的访问 530
12.4.2 通过过程限制更新 531
12.4.3 在应用程序内限制访问 534
12.5 使用加密来保护数据 536
12.5.1 保障互联网传输的安全 537
12.5.2 在数据库中加密所选的数据 538
12.5.3 使用证书保护源代码 541
12.6 数据库审计 541
12.6.1 使用事件通知进行审计 542
12.6.2 查看审计跟踪信息 544
12.6.3 创建触发器进行审计 545
12.7 小结 547
12.8 关键术语 548
12.9 复习 548
12.9.1 判断题 548
12.9.2 填空题 548
12.9.3 多项选择题 548
12.10 实际练习 549
第13章 数据库管理 552
13.1 DBA的职责概览 552
13.2 使用Server Management Studio 553
13.3 理解SQL Server存储文件 555
13.3.1 创建数据库文件 556
13.3.2 压缩表与文件 557
13.4 配置分区与群集索引 559
13.4.1 定义分区 559
13.4.2 定义群集 562
13.5 导入与导出数据 563
13.5.1 使用SQL脚本 563
13.5.2 使用大容量INSERT 563
13.6 DBMS的维护 565
13.6.1 补丁与更新 565
13.6.2 数据库的启动与关闭 566
13.7 数据库的备份 567
13.7.1 备份数据库的复杂因素 568
13.7.2 关闭与系统备份(冷备份) 569
13.7.3 持续备份与存档(热备份) 569
13.7.4 制作数据镜像 571
13.8 监视并改进数据库性能 571
13.8.1 监视工具 572
13.9 查询优化 575
13.9.1 分析整体性能 578
13.10 从系统视图中获得有用的信息 581
13.11 小结 582
13.12 关键术语 583
13.13 复习 583
13.13.1 判断题 583
13.13.2 填空题 584
13.13.3 多项选择题 584
13.14 实际练习 584
第14章 使用Microsoft ASP.NET创建基于Web的窗体 587
14.1 基于Web的窗体概述 587
14.1.1 三种主要窗体类型 588
14.1.2 Web窗体结构 589
14.1.3 HTML的基本元素 591
14.1.4 Visual Studio Web窗体的基本结构 593
14.1.5 Visual Studio的元素 595
14.2 使用Forms Builder创建简单的主窗体 597
14.2.1 启动一个数据库窗体 597
14.2.2 运行DetailsView窗体 598
14.3 修改窗体 600
14.3.1 基本属性 600
14.3.2 添加静态图片 601
14.3.3 在数据库中添加图像 602
14.3.4 添加查找列 607
14.3.5 创建下拉列表 608
14.3.6 单选按钮与复选框 612
14.4 窗体事件、调试与错误处理 614
14.4.1 窗体事件的顺序 614
14.4.2 程序代码的调试 615
14.4.3 捕获错误 617
14.5 创建表格窗体与子窗体 617
14.5.1 创建表格窗体 617
14.5.2 创建主窗体与子窗体 620
14.5.3 在网格中显示额外的列 624
14.5.4 设置格式 625
14.5.5 设置编辑和插入模板 626
14.6 创建有用的窗体工具 629
14.6.1 创建和使用标志列 630
14.6.2 验证窗体输入 632
14.6.3 计算网格数据的小计值 634
14.7 使用多个窗体 638
14.8 小结 641
14.9 关键术语 641
14.10 复习 642
14.10.1 判断题 642
14.10.2 填空题 642
14.10.3 多项选择题 642
14.11 实际练习 643