第一章 关系属性和概念 1
1.1 SQL是什么 1
1.2 SQL处理功能 1
1.3 数据库 2
1.4 表 4
1.5 视图 8
第二章 ORACLE概述 9
2.1 ORACLE产品 9
2.2 SQL*PLUS 11
2.3 开始使用SQL*PLUS 11
2.4 键入和编辑SQL语句 12
第三章 装入练习用表 14
3.1 影像商店实例 14
3.2 影像商店表 16
3.3 清单(INV)表 16
3.4 顾客(CUST)表 17
3.5 电影(MOV)表 17
3.6 清单号电影号(I_M)表 18
3.7 本课程所用的ORACLE格式命令 19
3.8 装入表 19
3.9 创建表 19
3.10 ORACLE数据库的容量 26
3.11 SQL*PLUS命令与SQL*PLUS语句的对比 26
第四章 数据查询语句 27
4.1 SELECT语句 27
4.2 SQL*PLUS SELECT语句剖析 29
4.3 练习格式说明 31
4.4 选择单一列的练习 32
4.5 SELECT DISTINCT——消除冗余行 36
4.6 从表中选择多个列 38
4.7 SELECT*——显示一张表中的所有列 40
4.8 小结 41
4.9 解释SQL*PLUS语句 41
4.10 解释结果表 41
4.11 练习答案 42
第五章 条件查询:SELECT WHERE 43
5.1 WHERE——条件查询 43
5.2 比较操作符 45
5.3 比较条件和列数据类型 46
5.4 使用比较操作符 47
5.5 使用WHERE的练习 48
5.6 空值——无信息 50
5.7 使用NULL的练习 52
5.8 回顾——WHERE子句 53
5.9 解释SQL*PLUS语句 53
5.10 练习答案 54
第六章 排序结果表:ORDER BY 55
6.1 ORDER BY——简单数据排列 55
6.2 ORDER BY——排序序列 58
6.3 ORDER BY语句格式 60
6.4 ORDER BY练习 61
6.5 ORDER BY——解释SQL语句 64
6.6 练习答案 64
第七章 组合查询条件:AND,OR,NOT 66
7.1 AND和OR——多个查询条件 66
7.2 AND—OR的运算次序 71
7.3 NOT——否定查询 73
7.4 回顾多个查询条件 75
7.5 解释SQL*PLUS语句 76
7.6 练习答案 76
第八章 其它关系运算符:BETWEEN,IN,LIKE 78
8.1 其它关系运算符 78
8.2 其它关系运算符——例子 79
8.3 BETWEEN——在一定列值范围内查询行 80
8.4 关于BETWEEN的练习 81
8.5 IN——查询列值属于值表的行 83
8.6 LIKE——查询列值与指定值近似相等的行 86
8.7 关于LIKE的练习 87
8.8 数值运算 89
8.9 数值运算的语法 91
8.10 数值运算的练习 92
8.11 练习答案 94
第九章 表连接 95
9.1 JOIN——从两个或多个表中查询数据 95
9.2 JOIN的图解 97
9.3 连接的条件 97
9.4 采用连接条件产生的四种情况 99
9.5 SQL*PLUS的JOIN处理过程 100
9.6 进行表连接的列 104
9.7 JOIN小结 105
9.8 简单连接练习 106
9.9 ORACLE外部连接 113
9.10 表连接——解释SQL*PLUS语句 115
9.11 练习答案 116
9.12 解释SQL*PLUS语句 116
第十章 数据定义语句:CREATE,DROP,ALTER 117
10.1 SQL*PLUS数据定义语句 118
10.2 创建数据库表 119
10.3 SQL*PLUS数据命名 120
10.4 SQL*PLUS字符数据类型 121
10.5 SQL*PLUS数值数据类型 121
10.6 定义数据库表的练习——CREATE TABLE 122
10.7 定义数据库表的练习——ALTER TABLE 123
10.8 修改一个已存在的列 124
10.9 定义数据库表的练习——DROP TABLE 125
10.10 创建视图 126
10.11 定义视图的练习 127
10.12 创建别名 127
10.13 定义别名的练习 128
10.14 练习答案 128
10.15 附加练习 128
第十一章 SQL数据更新语句INSERT,DELETE,UPDATE 130
11.1 SQL数据更新语句 130
11.2 INSERT——格式Ⅰ——插入一行 130
11.3 INSERT——格式Ⅱ——插入多行 134
11.4 DELETE——删除表中的行 136
11.5 UPDATE——更新列值 139
11.6 UPDATE——使用计算值 141
11.7 练习答案 144
第十二章 列函数 145
12.1 函数简介 145
12.2 雇员数据库 146
12.3 列函数 147
12.4 使用列函数 147
12.5 AVG函数 148
12.6 NULL值的忽略 148
12.7 MAX函数 152
12.8 MIN函数 155
12.9 SUM函数 155
12.10 COUNT函数 159
12.11 练习答案 161
第十三章 行函数 163
13.1 行函数与列函数比较 163
13.2 行函数概述 163
13.3 行函数格式 166
13.4 算术运算函数 166
13.5 字符变换函数 167
13.6 字符操作函数 167
13.7 日期函数 168
13.8 其它函数(MISCELLANEOUS FUNCTIONS) 169
13.9 行函数练习 169
13.10 练习答案 173
第十四章 汇总数据(SUMMARIZING DATA) 174
14.1 控制改变报表概述 174
14.2 GROUP BY——处理表的分组 175
14.3 使用GROUP BY 175
14.4 HAVING——限制组选择 179
14.5 使用HAVING 179
14.6 UNION——合并表中的行 183
14.7 UNION与JOIN的比较 185
14.8 UNION的使用 185
14.9 其它汇总操作 187
14.10 练习答案 188
第十五章 ORACLE报表的格式化 189
15.1 格式化列的显示——COLUMN 189
15.2 报表头和注脚——TTITLE,BITTLE 193
15.3 控制改变——BREAK ON 194
15.4 计算子汇总——COMPUTE SUM OF 195
15.5 取消报表格式命令 196
15.6 使用报表格式命令的练习 197
第十六章 子查询 198
16.1 标准查询——基于定义的搜索变量值的行选择 199
16.2 基于未知或者需要计算的搜索变量值的行选择 199
16.3 子查询——SELECT语句的嵌套使用 200
16.4 子查询的执行 200
16.5 子选择——产生搜索变量值的嵌套SELECT语句 201
16.6 子查询小结 202
16.7 子查询编码 202
16.8 子查询比较操作符 203
16.9 子查询例1 204
16.10 SQL解释 208
16.11 带有表连接的子查询 209
16.12 外层SELECT中的表连接 209
16.13 用AND/OR连接子选择 210
16.14 标准比较操作符 212
16.15 关系修饰符——IN 212
16.16 使用子查询修改表 215
16.17 多级子选择 218
16.18 独立于外层SELECT的子选择 222
16.19 依赖于外层SELECT的子选择 222
16.20 相关子查询的执行 223
16.21 相关子查询的例子 223
16.22 编写相关子查询 224
16.23 EXISTS——检测值的存在性 226
16.24 NOT EXISTS——检测值的非存在性 227
16.25 外连接(OUTER JOINS) 227
16.26 EXISTS/NOT EXISTS编码规则 228
16.27 使用子选择过滤行组 229
16.28 使用子选择和HAVING模拟函数的函数 230
16.29 子查询汇总比较 231
16.30 练习答案 234
第十七章 SQL视图 234
17.1 什么是视图 234
17.2 为什么使用视图 242
17.3 创建视图 242
17.4 创建DBA视图 245
17.5 用CHECK OPTION创建视图 246
17.6 使用视图和USER关键字控制数据访问 247
17.7 删除视图(DROP VIEW) 248
17.8 ORACLE如何处理对视图的SQL请求 249
17.9 练习答案 250
第十八章 数据控制语句 251
18.1 ORACLE中内部和外部安全比较 252
18.2 表级ORACLE数据控制语句 253
18.3 写数据控制语句——GRANT 253
18.4 写数据控制语句——REVOKE 254
18.5 传递权限——WITH GRANT OPTION 254
18.6 REVOKE对传递权限的影响 254
18.7 练习 255
第十九章 数据字典 257
19.1 什么是数据字典 257
19.2 ORACLE如何使用数据字典 258
19.3 应用人员的数据字典查询 258
第二十章 优化查询 261
20.1 什么时候不得不考虑优化查询 261
20.2 ORACLE访问路径选择 262
20.3 表扫描与索引扫描比较 262
20.4 SQL优化规则 263
20.5 使用索引的查询必须避免的情况 263
20.6 使用索引的查询应该满足的条件 263
20.7 优化GROUP BY——HAVING 264
20.8 优化OR条件 265
20.9 强制表扫描 265
20.10 得到NULL值的索引访问 266
20.11 非SQL编码策略 266
20.12 复习题 266
20.13 复习题答案 267
第二十一章 其它SQL*PLUS命令 268
21.1 树形结构查询介绍 268
21.2 CONNECT BY PRIOR 269
21.3 SQL*PLUS会话管理命令 271
21.4 在SQL*PLUS报表中使用&变量 275
附录 SQL保留字 278