第一部分 SQL概述 2
第1章 简介 2
1.1 SQL语言 2
1.2 SQL的功能 3
1.3 SQL的特点和优点 5
第2章 SQL快速入门 10
2.1 一个简单的数据库 10
2.2 检索数据 11
2.3 汇总数据 12
2.4 往数据库中添加数据 13
2.5 删除数据 13
2.6 更新数据库 14
2.7 保护数据 14
2.8 创建数据库 15
2.9 小结 16
第3章 SQL剖析 17
3.1 SQL与数据库管理 17
3.2 SQL简史 18
3.3 SQL标准 21
3.4 SQL和网络 25
3.5 SQL的衍生 28
3.6 小结 34
第4章 关系数据库 35
4.1 早期的数据模型 35
4.2 关系数据模型 38
4.3 Codd的12条原则* 44
4.4 小结 46
第二部分 检索数据 48
第5章 SQL基础知识 48
5.1 语句 48
5.2 名称 51
5.3 数据类型 52
5.4 常量 56
5.5 表达式 58
5.6 内嵌函数 59
5.7 丢失数据(NULL值) 60
5.8 小结 61
第6章 简单查询 62
6.1 SELECT语句 62
6.2 查询结果 64
6.3 简单查询 66
6.4 重复的记录(DISTINCT) 70
6.5 选择记录(WHERE子句) 71
6.6 搜索条件 72
6.7 排序查询结果(ORDER BY子句) 84
6.8 单表查询处理的原则 85
6.9 小结 90
第7章 多表查询(连接) 92
7.1 一个两表查询的范例 92
7.2 简单连接(等连接) 93
7.3 不等连接 101
7.4 SQL对多表查询要考虑的因素 102
7.5 多表查询的性能 107
7.6 连接的结构 108
7.7 外连接* 110
7.8 连接和SQL2标准 116
7.9 小结 124
第8章 汇总查询 125
8.1 字段函数 125
8.2 分组查询(GROUP BY子句) 133
8.3 分组搜索条件(HAVING子句) 141
8.4 小结 144
第9章 子查询和查询表达式 145
9.1 使用子查询 145
9.2 子查询搜索条件 149
9.3 子查询和连接 158
9.4 嵌套的子查询 159
9.5 关联子查询* 160
9.6 HAVING子句中的子查询* 162
9.7 子查询小结 163
9.8 SQL2中的高级查询* 164
9.9 SQL查询:总结 178
第三部分 更新数据 182
第10章 数据库更新 182
10.1 往数据库中添加数据 182
10.2 从数据库中删除数据 188
10.3 修改数据库中的数据 192
10.4 小结 195
第11章 数据完整性 196
11.1 什么是数据完整性 196
11.2 要求的数据 197
11.3 简单有效性检查 198
11.4 实体完整性 200
11.5 引用完整性 201
11.6 高级约束功能(SQL2) 211
11.7 商业规则 215
11.8 小结 220
第12章 事务处理 221
12.1 什么是事务 221
12.2 事务:内幕* 227
12.3 事务和多用户处理 228
12.4 锁定* 233
12.5 版本化* 241
12.6 小结 244
第四部分 数据库结构 248
第13章 创建数据库 248
13.1 数据定义语言 248
13.2 创建数据库 249
13.3 表定义 250
13.4 约束定义 261
13.5 别名和匿名 262
13.6 索引 263
13.7 管理其他数据库对象 266
13.8 数据库结构 268
13.9 数据库结构与ANSI/ISO标准 273
13.10 小结 277
第14章 视图 278
14.1 什么是视图 278
14.2 创建视图 280
14.3 更新视图 287
14.4 删除视图(DROP VIEW) 291
14.5 物化视图* 292
14.6 小结 293
第15章 SQL安全 294
15.1 SQL安全的概念 294
15.2 视图和SQL安全 300
15.3 授予权限(GRANT语句) 302
15.4 取消权限(REVOKE语句) 306
15.5 小结 311
第16章 系统目录 312
16.1 什么是系统目录 312
16.2 表信息 315
16.3 字段信息 317
16.4 视图信息 319
16.5 注释 321
16.6 关系信息 321
16.7 用户信息 323
16.8 权限信息 324
16.9 SQL2信息模式 325
16.10 其他目录信息 328
16.11 小结 328
第五部分 使用SQL编程 330
第17章 嵌入式SQL 330
17.1 程序化SQL技术 330
17.2 简单的嵌入式SQL语句 337
17.3 嵌入式SQL中的数据检索 352
17.4 基于游标的删除和更新 364
17.5 游标和事务处理 366
17.6 小结 367
第18章 动态SQL 368
18.1 静态SQL的局限性 368
18.2 动态SQL概念 369
18.3 动态语句执行(EXECUTE IMMEDIATE语句) 370
18.4 两步动态执行 372
18.5 动态查询 382
18.6 动态SQL专用语言 391
18.7 动态SQL和SQL2标准 394
18.8 小结 403
第19章 SQL API 404
19.1 API概念 404
19.2 dblib API(SQL Server) 406
19.3 ODBC和SOL/CLI标准 420
19.4 ODBC API 443
19.5 Oracle调用接口(OCI) 449
19.6 Java数据库连接(JDBC) 453
19.7 小结 470
第六部分 SQL的现在和未来 474
第20章 数据库处理和存储过程 474
20.1 存储过程概念 474
20.2 基本示例 475
20.3 使用存储过程 477
20.4 存储过程的优点 496
20.5 存储过程的性能 497
20.6 系统定义的存储过程 497
20.7 外部存储过程 498
20.8 触发器 498
20.9 存储过程、触发器和SQL标准 505
20.10 小结 513
第21章 SQL和数据仓库 514
21.1 数据仓库概念 514
21.2 数据仓库的数据库体系结构 517
21.3 数据仓库性能 522
21.4 小结 523
第22章 SQL和应用程序服务器 525
22.1 SQL和网站:早期实现 525
22.2 应用程序服务器和三层网站结构 526
22.3 从应用程序服务器访问数据库 527
22.4 应用程序服务器高速缓存 535
22.5 小结 536
第23章 SQL网络和分布式数据库 538
23.1 分布式数据管理的挑战 538
23.2 分布数据:实用方法 542
23.3 分布式数据库访问 554
23.4 两阶段提交协议 558
23.5 网络应用程序和数据库体系结构 560
23.6 小结 564
第24章 SQL与对象 566
24.1 面向对象数据库 566
24.2 对象关系数据库 569
24.3 抽象(结构化)数据类型 573
24.4 继承 577
24.5 组合、数组和集合 581
24.6 用户自定义数据类型 588
24.7 方法和存储过程 588
24.8 SQL中的对象支持:1999标准 591
24.9 小结 591
第25章 SQL和XML 592
25.1 XML是什么 592
25.2 XML的基础知识 593
25.3 XML对数据的处理 595
25.4 在数据库中使用XML 599
25.5 XML和元数据 606
25.6 XML和查询 613
25.7 XML数据库 617
25.8 小结 618
第26章 SQL的未来 619
26.1 数据库市场的趋势 619
26.2 未来十年的SQL 626
26.3 小结 630
第七部分 附录 632
附录A 样本数据库 632
附录B 数据库提供商概述 636
附录C SQL语法完全参考手册 649
附录D SQL调用级接口 655
附录E SQL信息方案标准 668
附录F CD-ROM安装指南 678