内容简介
第1章 关系数据库简介
1.1 数据库的确切定义
1.1.1 表
1.1.2 行/记录
1.1.3 列/字段
1.2 数据库和电子数据表的区别
1.2.1 多行
1.2.2 多用户同时访问
1.2.3 安全性
1.2.4 关联功能
1.2.5 确保数据质量的约束
1.2.6 案例分析——Clapham专营店
1.3 了解这些内容对您的帮助
1.3.1 开发软件
1.4 SQL的历史
1.3.4 更好地使用数据库
1.3.3 进行商业分析
1.3.2 作为数据库管理员
1.5 小结
1.6 练习
1.7 实践项目
第2章 存储和检索数据:基本操作
2.1 使用数据库的准备工作
2.1.2 插入记录
2.1.1 创建表
2.1.3 选择记录
2.1.4 删除表
2.2 创建表
2.2.1 表和列的命名原则
2.2.2 创建更复杂的表
2.2.3 确定表的结构
2.2.4 NULL和NOTNULL列
2.3 插入数据——补充方法
2.3.1 插入包含NULL值的记录
2.3.2 插入包含撇号的数据
2.4 查看表中的数据——补充方法
2.4.1 选择特定的列
2.4.2 修改列的顺序
2.4.3 使用表中的数据进行数学计算
2.4.4 连接两段或更多文本
2.4.5 将别名赋给对应的列
2.5 小结
2.6 练习
2.7 实践项目
第3章 执行高级数据操作
3.1 SQL命令分类
3.1.1 数据定义
3.1.2 数据操作
3.1.3 数据控制
3.1.4 数据检索
3.1.5 事务控制
3.2.1 根据数字过滤记录
3.2 限制选取的记录
3.2.2 根据文本过滤记录
3.2.3 根据日期过滤记录
3.3 按不同的顺序查看记录
3.3.1 单列排序
3.3.2 多列排序
3.4 显示惟一值
3.5 从DUAL表中选取数据
3.6 修改表中的数据
3.7 从表中删除记录
3.7.1 删除符合特定条件的行
3.7.2 删除所有行
3.8 事务控制
3.8.1 撤消DML事务
3.8.2 使数据对其他用户可见
3.8.3 隐式提交和显式提交
3.9 小结
3.10 练习
3.11 实践项目
第4章 控制SQL*Plus
4.1 编辑以前的命令
4.1.1 使用文本编辑器
4.1.2 单行编辑
4.2 复制和粘贴
4.3 清空SQL*Plus的屏幕
4.4 定制SQL*Plus的环境
4.4.1 使用SQL*Plus的菜单进行定制
4.4.2 使用命令进行定制
4.5 保存环境设置
4.6 提高输出的可读性
4.6.1 在SQL*Plus中格式化数字
4.6.2 在SQL*Plus中格式化文本
4.6.3 在SQL*Plus中格式化列标题
4.7 假脱机输出到磁盘
4.8.1 创建脚本文件
4.8 SQL脚本文件
4.8.2 运行脚本文件
4.8.3 在脚本文件中使用变量
4.9 小结
4.10 练习
4.11 实践项目
第5章 Oracle SQL内部函数
5.1 实现常用单行函数
5.1.1 系统变量
5.1.2 数值函数
5.1.3 文本函数
5.1.4 日期
5.1.5 数据转换
5.1.6 其他函数
5.2 常用分组函数
5.2.1 常用分组函数
5.2.2 使用GROUPBY子句对数据分组
5.2.3 使用HAVING子句包含和去除分组数据
5.3 小结
5.4 练习
5.5 实践项目
第6章 索引、连接和子查询
6.1 创建测试表
6.2 索引
6.2.1 数据库索引
6.2.2 创建索引的方法
6.3.1 B树索引
6.3 索引的类型
6.3.2 位图索引
6.3.3 位图索引与B树索引
6.3.4 基于函数的索引
6.4 何时使用索引
6.5 表之间的关系
6.5.1 使用SELECT语句进行多表联合查询
6.5.2 连接的类型
6.5.3 集合运算符
6.6.1 子查询的定义
6.6 子查询
6.6.2 子查询所能解决的问题
6.6.3 单行子查询
6.6.4 多行子查询
6.6.5 多列子查询
6.6.6 关联子查询
6.7 小结
6.8 练习
6.9 实践项目
第7章 编写PL/SQL程序
7.1 PL/SQL的定义
7.1.1 PL/SQL简介
7.1.2 PL/SQL、SQL和SQL*Plus的关系
7.1.3 存储过程、函-数和触发器
7.1.4 存储过程和SQL脚本
7.2 PL/SQL的块结构
7.2.2 声明部分
7.2.1 块头部分
7.2.3 执行部分
7.2.4 异常部分
7.3 创建一个简单的PL/SQL过程
7.4 PL/SQL变量和常量
7.4.1 PL/SQL变量的声明
7.4.2 声明PL/SQL常量
7.4.3 变量赋值
7.4.4 使用变量
7.5 PL/SQL的控制结构
7.5.1 IF语句
7.5.2 循环
7.5.3 游标
7.5.4 嵌套循环和游标应用示例
7.6 错误处理
7.6.1 异常
7.6.2 系统定义异常
7.6.3 程序员定义的异常
7.7 小结
7.8 练习
7.9 实践项目
第8章 解读数据模型
8.1 数据模型设计综述
8.1.1 数据模型设计的目的及其益处
8.1.2 关系完整性:质量数据
8.2.1 概念模型
8.2 数据模型的种类
8.2.2 逻辑数据模型
8.2.3 物理数据模型
8.3 实体-关系图
8.3.1 实体
8.3.2 属性
8.3.3 关系
8.3.4 基数与可选符号
8.4 小结
8.5 复习题
8.6 实践项目
第9章 数据库结构设计基础
9.1 业务规约:让数据告诉您该往哪走
9.2 数据库粒度选择
9.3 实体和属性
9.4 可靠地确定记录:主键
9.4.1 为什么需要主键
9.4.2 复合主键
9.4.3 自然主键与代理主键
9.4.4 关系:引用其他表的数据
9.5 常用数据模型标准
9.5.1 鱼尾纹(IE)
9.5.2 IDEF1X
9.6 关系:基数和可选性
9.6.1 一对多
9.6.2 多对多
9.6.3 一对一
9.6.4 可选性
9.6.5 依存关系:确定关系
9.6.6 递归关系与二元关系
9.7 多范畴建模:超类型和子类型
9.7.1 范畴、超类型和子类型
9.7.2 超/子类型的物理模型实现
9.8 小结
9.9 复习题
9.10 实践项目
第10章 数据库的规范化
10.1 规范化过程
10.2 依存关系
10.2.1 依存因子与决定因子
10.2.2 传递依存关系
10.3 第一范式、二范式、三范式
10.3.1 第一范式:消除重复组
10.3.2 第二范式:消除冗余数据
10.3.3 第三范式:消除非主键依存关系
10.4 在数据库模型设计中应用范式
10.5 第四范式、第五范式
10.5.1 第四范式:分离独立的多重关系
10.5.2 第五范式:分离语义关联的多重关系
10.6 合理地使用范式
10.7 数据异常
10.7.1 插入异常
10.7.2 删除异常
10.7.3 更新异常
10.7.4 遵守范式约束的代价
10.8 将逻辑模型转化为物理模型
10.8.1 数据库引擎的选择
10.8.2 术语转换
10.8.3 超/子类型的转换
10.9 小结
10.10 练习
10.11 实践项目
第11章 分析数据质量问题
11.1 数据类型与丢失数据:质量的基础
11.1.1 处理遗漏值
11.1.2 苹果和橘子:定义数据类型
11.1.3 选择数据类型
11.1.4 数据类型转换:弱类型和强类型
11.2 数据域:合法性检查
11.3.1 列约束
11.3 列和表约束
11.3.2 表约束
11.4 主键约束与索引
11.4.1 惟一性及其实现
11.4.2 候选键
11.4.3 其他索引
11.5 外键约束:引用其他表的数据
11.5.1 添加约束
11.5.2 基数和可选性的实现
11.5.3 级联效应
11.5.4 递归关系上的级联删除
11.5.4 级联的局限性
11.6 声明式关系完整性:优点和局限
11.6.1 声明式外键约束
11.6.2 触发器和过程代码
11.7 命名约束:令程序员更易理解
11.7.1 命名表和列
11.7.2 命名检查约束
11.7.3 命名外键约束
11.7.4 命名索引
11.8 小结
11.9 练习
11.10 实践项目
第12章 其他Oracle相关技术
12.1 表间数据传送
12.1.1 使用INSERT传送数据
12.1.2 在现有表的基础上创建新表
12.2 重命名表
12.3 修改表结构
12.3.1 添加列
12.3.2 修改列的数据类型
12.3.3 修改NULL选项
12.4 视图
12.4.1 创建视图
12.4.2 可更新视图
12.4.3 删除视图
12.4.4 回显记录个数的控制
12.5 其他数据库对象
12.5.1 序列
12.5.2 同义词
12.6 小结
12.7 练习
12.8 实践项目
术语表