第一部分 SQL基础 1
第1章 SQL简介 1
1.1 SQL简史 1
1.2数据库简史 1
1.3现在的数据库 4
1.4交叉平台语言 5
1.5 SQL概览 5
1.6流行的SQL实现 6
1.7开放数据库连接 7
1.8在应用程序中嵌入SQL 7
1.9小结 8
1.10问与答 8
1.11习题 9
第2章 查询简介 10
2.1 SQL背景探索 10
2.2学习基本的查询语法 10
2.3数据检索的构建块:SELECT和FROM 11
2.4应用查询概念 12
2.5编写第一个查询 12
2.6选取不同的值 16
2.7小结 17
2.8问与答 17
2.9习题 18
第3章 表达式、条件和运算符 21
3.1查询表达式的使用 21
3.2在查询中设置条件 21
3.3学习如何使用运算符 22
3.4小结 48
3.5问与答 48
3.6习题 48
第4章 SQL查询中的子句 51
4.1使用WHERE子句指定规则 52
4.2 ORDER B Y子句 53
4.3 GROUP BY子句 59
4.4 HAVING子句 64
4.5合并子句 69
4.6小结 72
4.7问与答 72
4.8习题 73
第5章 连接表 75
5.1在单条SELECT语句中连接多个表 75
5.2相等连接 80
5.3不等连接 85
5.4外连接和内连接 86
5.5自连接 89
5.6小结 91
5.7问与答 91
5.8习题 91
第6章 在查询中嵌入子查询 94
6.1建立子查询 95
6.2使用聚合函数与子查询 99
6.3嵌套子查询 100
6.4使用相关子查询进行外部引用 103
6.5使用EXISTS、 ANY和ALL 105
6.6小结 108
6.7问与答 108
6.8习题 109
第7章 使用内置函数处理数据 111
7.1使用聚合函数汇总数据 111
7.2使用函数设置日期和时间值的格式 116
7.3使用函数进行算术运算 120
7.4使用函数修改字符值的外观 124
7.5转换函数 134
7.6其他函数 135
7.7 MySQL字符函数补充示例 136
7.8 MySQL日期函数补充示例 138
7.9小结 140
7.10问与答 140
7.11习题 140
第二部分 数据库设计 143
第8章 数据库规范化 143
8.1规范化数据库 143
8.2理解范式 144
8.3规范化步骤 145
8.4规范化的优点 146
8.5规范化的缺点 147
8.6数据库去规范化 147
8.7小结 147
8.8问与答 147
8.9习题 148
第9章 创建和维护表 149
9.1 CREATE DATABASE语句 149
9.2用CREATE TABLE语句定义表 152
9.3用ALTER TABLE语句修改表的结构 158
9.4 DROP TABLE语句 160
9.5 DROP DATABASE语句 161
9.6小结 161
9.7问与答 161
9.8习题 162
第10章 数据完整性控制 164
10.1约束简介 164
10.2约束的种类 165
10.3约束管理 170
10.4小结 173
10.5问与答 174
10.6习题 174
第三部分 数据操作 175
第11章 数据处理 175
11.1数据处理语句简介 175
11.2用INSERT语句输入数据 175
11.3用UPDATE语句修改现有数据 180
11.4用DELETE语句删除信息 182
11.5从外部数据源导入和导出数据 185
11.6小结 187
11.7问与答 187
11.8习题 188
第12章 SQL中的日期与时间 190
12.1日期与时间型数据的存储方式 190
12.2在查询中应用日期函数 192
12.3日期格式转换 197
12.4小结 200
12.5问与答 200
12.6习题 200
第13章 创建视图 202
13.1视图简介 202
13.2使用视图 202
13.3小结 214
13.4问与答 214
13.5习题 214
第14章 事务控制 216
14.1事务管理 216
14.2开始事务处理 217
14.3结束事务处理 219
14.4取消事务处理 220
14.5使用事务保存点 222
14.6小结 223
14.7问与答 224
14.8习题 224
第四部分 数据库管理 225
第15章 在表上创建索引以提高性能 225
15.1索引是什么 225
15.2使用带有UNIQUE关键字的CREATEINDEX语句 232
15.3索引与连接 233
15.4使用聚簇索引 234
15.5小结 234
15.6问与答 234
15.7习题 235
第16章 优化SQ L语句以提高性能 236
16.1提高SQL语句的可读性 236
16.2避免全表扫描 237
16.3添加新索引 237
16.4查询中各成分的安排 238
16.5联机分析处理与联机事务处理 240
16.6成批载入与事务处理 241
16.7删除索引以优化数据的载入 242
16.8 COMMIT语句 242
16.9在动态环境中重建表和索引 243
16.10数据库的性能调节 244
16.11影响数据库性能的因素 246
16.12使用内置性能调节工具 247
16.13小结 247
16.14问与答 247
16.15习题 248
第17章 数据库安全性 249
17.1数据库管理员须知 249
17.2流行的数据库产品及其安全性 249
17.3 Oracle Express及其安全性 250
17.4小结 261
17.5问与答 261
17.6习题 262
第18章 数据字典 263
18.1数据字典简介 263
18.2标识数据字典的用户 263
18.3数据字典的内容 264
18.4 Oracle数据字典剖析 264
18.5 MySQL的数据字典 276
18.6小结 279
18.7问与答 279
18.8习题 279
第五部分 SQL高级对象 281
第19章 临时表、存储过程、触发器和游标 281
19.1创建临时表 281
19.2使用游标 284
19.3创建与使用存储过程 286
19.4设计和使用触发器 288
19.5嵌入式SQL 289
19.6小结 291
19.7问与答 291
19.8习题 291
第20章 最新标准中的新对象 293
20.1 CREATE ROLE语句探讨 293
20.2创建触发器 294
20.3使用CREATE TYPE语句 296
20.4小结 301
20.5问与答 301
20.6习题 301
第六部分 SQL高级编程 302
第21章 用SQL生成SQL语句 302
21.1使用SQL生成SQL语句的目的 302
21.2几个SQL*Plus命令 303
21.3统计所有表中的行数 304
21.4给多个用户授予系统权限 307
21.5将自己的表的权限授给其他用户 308
21.6为载入数据而禁用对表的约束 310
21.7在单个区域内创建大量同义词 311
21.8在表上创建视图 313
21.9截断某一用户的所有表 314
21.10用SQL产生Shell脚本 315
21.11应用生成SQL和其他概念 315
21.12小结 316
21.13问与答 316
21.14习题 317
第22章 创建复合SQL查询 318
22.1 CREATE TABLE语句 318
22.2复合查询示例 320
22.3建立复合查询的技巧 329
22.4小结 329
22.5问与答 330
22.6习题 330
第23章 SQL语句的调试 331
23.1常见的SQL错误 331
23.2常见的逻辑错误 339
23.3防止数据出现问题 343
23.4小结 343
23.5问与答 343
23.6习题 344
第24章 应用编程中的嵌入式SQL 345
24.1几种应用开发工具简介 345
24.2创建数据库 346
24.3使用Java和SQL 348
24.4使用.NET和SQL 350
24.5小结 350
24.6问与答 351
24.7习题 351
第七部分 SQL数据库实现 352
第25章 用Oracle SQL*Plus生成满意的报表 352
25.1 SQL*Plus简介 352
25.2 SQL*Plus缓冲区 352
25.3用DESCRIBE命令查看表结构 355
25.4用SHOW命令显示系统设置 356
25.5用文件命令操作文件 356
25.6用SET命令定制工作环境 359
25.7用CLEAR命令清除SQL*Plus的设置 362
25.8格式化输出结果 362
25.9创建报表和分组合计 364
25.10在SQL*Plus中使用变量 367
25.11使用表DUAL 370
25.12 DECODE函数 370
25.13日期转换 372
25.14执行一系列SQL文件 375
25.15在SQL脚本中添加注释 375
25.16创建高级报表 376
25.17小结 377
25.18问与答 377
25.19习题 377
第26章 Oracle PL/SQL简介 379
26.1 PL/SQL简介 379
26.2 PL/SQL代码块的结构 379
26.3 DECLARE部分 380
26.4 PROCEDURE部分 382
26.5 EXCEPTION部分 386
26.6 PL/SQL中的事务控制 388
26.7综合应用 388
26.8使用存储过程、程序包和触发器 394
26.9小结 397
26.10问与答 397
26.11习题 397
第27章 Transact-SQL简介 399
27.1 Transact-SQL简介 399
27.2对ANSI SQL的扩展 399
27.3数据类型 400
27.4使用Transact-SQL访问数据库 401
27.5建立程序流程控制 405
27.6 Transact-SQL通配符 410
27.7日期转换 410
27.8 SQL Server诊断工具—SET命令 411
27.9小结 411
27.10问与答 411
27.11习题 412
第28章 在基于UNIX的系统上使用MySQL 413
28.1 MySQL的管理 413
28.2 MySQL客户端程序 415
28.3 MySQL实用程序 419
28.4小结 419
28.5问与答 419
28.6习题 419
附录A 答案 421
附录B 创建表的代码实例 442
附录C 给表输入数据的代码实例 449
附录D MySQL练习 460