内容简介
第1章 准备软件环境
1.1 下载Oracle数据库软件
1.2 下载SQL Server数据库软件
1.3 安装软件
1.3.1 安装Oracle 12c
1.3.2 安装SQL Server 2016
1.4 创建数据库
1.4.1 用图形工具建库
1.4.2 执行命令建库
1.5 删除Oracle和SQL Server软件
1.6 下载Oracle的帮助文件
1.7 下载SQL Server的帮助文件
1.8 创建本书测试数据
1.8.1 在Oracle数据库中添加测试数据
1.8.2 在SQL Server数据库中添加测试数据
第2章 客户端工具
2.1 客户端工具概述
2.1.1 Oracle的客户端工具
2.1.2 SQL Server的客户端工具
2.2 启动数据库服务
2.2.1 启动Oracle数据库服务
2.2.2 启动SQL Server数据库服务
2.3 命令行工具使用方法
2.3.1 启动客户端工具并连接至数据库
2.3.2 查看软件版本
2.3.3 切换用户
2.3.4 切换数据库
2.3.5 查看当前数据库名称
2.3.6 修改密码
2.3.7 执行SQL命令
2.3.8 设置客户端界面每行容纳的字符数
2.3.9 修改执行过的SQL命令以重新执行
2.3.10 执行SQL脚本文件
2.3.11 查询结果保存为文件
2.3.12 设置查询结果的字符串列宽
2.3.13 查询表的结构,describe命令
2.4 图形工具使用方法
2.4.1 Oracle的图形工具
2.4.2 SQL Server的Management Studio
第3章 SQL语言
3.1 SQL概览
3.2 select语句
3.2.1 简单查询
3.2.2 多表连接
3.2.3 子查询
3.2.4 分页查询
3.2.5 集合运算
3.2.6 时态数据库相关查询
3.3 insert语句
3.4 update语句
3.5 delete语句
3.6 null值的处理
3.6.1 null值在排序中的处理
3.6.2 null处理函数
3.7 管理表
3.7.1 创建表
3.7.2 修改列的数据类型
3.7.3 添加及删除列
3.7.4 修改列名
3.7.5 修改表名
3.7.6 删除表
3.8 identity列
3.9 约束
3.10 视图
3.11 序列
3.12 同义词
第4章 字符串、数值及其常用函数
4.1 字符串类型
4.1.1 数据库字符集与国家字符集
4.1.2 设置Oracle字符集
4.1.3 设置SQL Server字符集
4.1.4 char(n)与varchar(n)的长度范围
4.1.5 nchar(n)和nvarchar(n)的长度范围
4.2 数值类型
4.2.1 定点数值数据类型number(p,s)与numeric(p,s)
4.2.2 整型
4.2.3 浮点型
4.2.4 在SQL Server中查询数据类型对应关系
4.3 常用字符串处理函数
4.3.1 字符串合并
4.3.2 ASCII码与字符的转换
4.3.3 字符串大小写转换
4.3.4 求字符串长度
4.3.5 裁剪字符串,trim系列函数
4.3.6 求子字符串,substr与substring
4.3.7 替换指定子串
4.4 常用数值处理函数
4.5 字符串及数值类型转换函数
4.5.1 在Oracle中把数值转换为字符串
4.5.2 在SQL Server中把数值转换为字符串
4.5.3 Oracle中把字符串转换为数值
4.5.4 SQL Server中把字符串转换为数值
第5章 日期时间类型数据的处理
5.1 日期时间类型
5.1.1 Oracle中的日期时间类型
5.1.2 SQL Server中的日期时间类型
5.2 处理日期时间常量
5.2.1 Oracle的情形
5.2.2 SQL Server的情形
5.2.3 设置默认日期时间环境参数
5.3 日期时间处理函数
5.3.1 类型转换函数
5.3.2 获得当前日期时间
5.3.3 抽取日期时间的指定部分
5.3.4 获取日期和时间差
5.3.5 获取指定日期所在月份的最后一天
第6章 逻辑存储结构
6.1 表空间与文件组的功能分类
6.1.1 分类与功能对比
6.1.2 表空间与文件组的对应关系
6.2 默认表空间与默认文件组
6.2.1 Oracle数据库的默认表空间
6.2.2 SQL Server数据库的默认文件组
6.2.3 把表创建到指定表空间或文件组
6.3 数据文件
6.3.1 为什么大型数据库一般使用多个文件存储数据
6.3.2 Oracle的数据文件
6.3.3 SQL Server的数据文件
6.4 空间分配单位:extent
6.5 最小存储单位:data block与data page
6.6 Oracle的segment
6.7 表空间及文件组管理
6.7.1 创建表空间或文件组
6.7.2 删除表空间或文件组
6.7.3 修改表空间或文件组属性
6.8 修改数据文件属性
6.9 移动数据文件
6.9.1 Oracle移动数据文件
6.9.2 SQL Server移动数据文件
6.10 查询表空间或文件组信息
6.11 查询数据文件信息
6.12 查询表分配到的extent信息
第7章 数据库体系结构
7.1 服务器结构
7.2 数据库文件及数据库相关文件
7.2.1 Oracle的情形
7.2.2 SQL Server的情形
7.3 内存结构
7.3.1 Oracle的内存结构
7.3.2 配置Oracle内存
7.3.3 SQL Server的内存结构
7.4 主要进程(线程)
7.4.1 Oracle的主要进程
7.4.2 SQL Server的主要线程
7.5 SQL Server的系统数据库
7.6 客户端连接的处理模式
第8章 存储空间的分配与回收
8.1 空间分配
8.2 对象存储空间在多个文件的循环分配
8.2.1 Oracle表数据在多个数据文件上的分布
8.2.2 SQL Server表数据在多个数据文件上的分布
8.3 删除数据对表占用存储空间的影响
8.3.1 在Oracle数据库中验证delete及truncate操作对存储空间的影响
8.3.2 在SQL Server数据库中验证delete及truncate操作对存储空间的影响
第9章 重做日志文件及其管理
9.1 重做日志文件的内容及作用
9.2 重做日志文件的组织
9.2.1 Oracle的重做文件组
9.2.2 Oracle的归档模式
9.2.3 SQL Server的重做日志文件组织方式
9.2.4 SQL Server的虚拟日志文件
9.2.5 SQL Server的事务日志备份
9.3 查看重做日志文件信息
9.3.1 Oracle的情形
9.3.2 SQL Server的情形
9.4 数据库运行模式
9.4.1 设置Oracle数据库的归档模式
9.4.2 SQL Server数据库的完整、简单及大容量日志恢复模式
9.4.3 SQL Server的完整日志维护状态对重做文件使用的影响
9.4.4 SQL Server的大容量日志恢复模式对产生重做数据量的影响
9.4.5 Oracle对大容量操作的处理方式
9.5 管理重做日志文件
9.5.1 Oracle的情形
9.5.2 SQL Server的情形
第10章 配置服务器与数据库
10.1 配置Oracle数据库服务器
10.1.1 初始化参数文件
10.1.2 pfile与spfile的区别
10.1.3 查看初始化参数值
10.1.4 修改初始化参数值
10.2 配置SQL Server服务器与数据库
10.2.1 查看服务器参数
10.2.2 修改服务器参数
10.2.3 查看数据库配置信息
10.2.4 修改数据库配置信息
10.2.5 设置当前连接参数
第11章 用户及权限管理
11.1 Oracle与SQL Server的用户和权限相关概念
11.1.1 用户
11.1.2 角色
11.1.3 模式和架构
11.1.4 SQL Server中的主体和安全对象
11.1.5 权限概念
11.2 用户管理
11.2.1 创建用户
11.2.2 修改用户属性
11.2.3 删除用户
11.2.4 用户信息查询
11.2.5 几个预置特殊用户简介
11.3 密码管理
11.3.1 密码策略管理
11.3.2 修改密码
11.4 Oracle的权限管理
11.4.1 系统权限和对象权限
11.4.2 所有的系统权限和对象权限
11.4.3 授予用户权限
11.4.4 撤销用户权限
11.4.5 查询用户的权限信息
11.5 SQL Server的权限管理
11.5.1 架构的概念及其管理
11.5.2 主要权限列表
11.5.3 权限管理的三个命令
11.5.4 服务器层次的权限管理
11.5.5 数据库层次的权限管理
11.5.6 架构层次的权限管理
11.5.7 对象权限
11.5.8 查询当前数据库用户具备的权限信息
11.6 角色
11.6.1 预置角色
11.6.2 创建及删除角色
11.7 SQL Server安全管理的几个易混淆问题
11.7.1 revoke与deny
11.7.2 安全对象的属主(owner)
11.7.3 安全对象的control权限
11.7.4 control server权限与sysadmin服务器角色
11.7.5 安全对象的take ownership权限
第12章 索引
12.1 B树索引
12.2 索引组织表与聚集索引
12.3 Oracle位图索引
第13章 执行计划
13.1 SQL命令的执行过程
13.2 执行计划的内容
13.3 使用文本方式查看执行计划
13.3.1 在Oracle中查看执行计划
13.3.2 在SQL Server中查看执行计划
13.3.3 查看SQL命令的执行时间
13.4 使用图形方式查看执行计划
13.4.1 Oracle的情形
13.4.2 SQL Server的情形
第14章 分区
14.1 Oracle中的分区类型
14.2 Oracle的范围分区
14.2.1 创建分区
14.2.2 添加与删除分区
14.2.3 合并与分割分区
14.3 Oracle的散列分区
14.3.1 创建散列分区
14.3.2 添加与删除散列分区
14.3.3 合并与分割散列分区
14.4 Oracle的列表分区
14.4.1 创建列表分区
14.4.2 添加与删除列表分区
14.4.3 合并与分割列表分区
14.4.4 增减列表值
14.5 Oracle的复合分区
14.5.1 创建range-*复合分区表
14.5.2 创建list-*复合分区表
14.5.3 创建hash-*复合分区表
14.5.4 管理子分区
14.6 Oracle分区的常见维护操作
14.6.1 查询分区表信息
14.6.2 重命名分区
14.6.3 移动分区
14.6.4 设置表的row movement属性
14.6.5 操作指定分区的数据
14.7 Oracle的分区索引
14.7.1 本地分区索引
14.7.2 全局分区索引
14.7.3 表分区的修改对索引的影响
14.8 SQL Server的分区表
14.8.1 使用分区的主要步骤
14.8.2 创建存放分区的文件组
14.8.3 创建分区函数
14.8.4 创建分区方案
14.8.5 创建分区表
14.8.6 查询记录所在分区
14.8.7 分割分区
14.8.8 合并分区
14.8.9 在表之间移动分区数据
14.8.10 删除分区函数与分区方案
14.9 SQL Server的分区索引
14.10 查询SQL Server分区信息
14.10 .1 查询分区函数信息
14.10 .2 查询分区方案信息
14.10 .3 查询分区表信息
14.10 .4 操作分区内的数据
第15章 事务处理
15.1 事务概念
15.2 ACID属性
15.3 事务控制命令
15.3.1 commit背后
15.3.2 rollback背后
15.4 客户端的事务模式
15.4.1 自动提交模式
15.4.2 隐式模式
15.4.3 显式模式
15.4.4 设置事务模式
15.5 DDL及DCL语句的处理方式
15.6 事务隔离级别
15.6.1 脏读和不可重复读问题
15.6.2 SQL标准中的事务隔离级别
15.6.3 read committed隔离级别
15.6.4 serializable隔离级别
15.7 SQL Server的多版本数据技术
15.7.1 设置read_committed_snapshot改变read committed效果
15.7.2 设置allow_snapshot_isolation改变serializable效果
第16章 锁
16.1 Oracle的锁
16.2 SQL Server的锁
16.2.1 SQL Server中锁的种类
16.2.2 共享锁
16.2.3 排他锁
16.2.4 更新锁——SQL Server真的支持行锁吗
16.2.5 意向锁
16.2.6 架构锁
16.2.7 锁的升级
16.2.8 read uncommitted隔离级别与锁
16.2.9 read committed隔离级别与锁
16.2.10 repeatable read隔离级别与锁
16.2.11 serializable隔离级别与锁
16.2.12 SQL Server查询不使用锁的几种情况
16.3 死锁
第17章 程序设计
17.1 PL/SQL和T-SQL简介
17.2 注释方式
17.3 程序基本结构
17.4 信息输出:Hello,world!
17.4.1 PL/SQL使用dbms_output包
17.4.2 T-SQL使用print
17.5 变量声明与赋值
17.5.1 PL/SQL的变量声明及赋值
17.5.2 T-SQL的变量声明及赋值
17.6 条件处理
17.6.1 PL/SQL中的条件处理
17.6.2 T-SQL中的条件处理
17.6.3 case语句
17.7 循环
17.7.1 PL/SQL中的循环
17.7.2 T-SQL中的循环
17.7.3 break与continue
17.8 异常处理
17.8.1 PL/SQL的exception…when
17.8.2 T-SQL的try…catch
第18章 存储过程与函数
18.1 存储过程
18.1.1 不附带参数的存储过程
18.1.2 附带输入参数的存储过程
18.1.3 附带输出参数的存储过程
18.2 函数
18.2.1 Oracle的函数
18.2.2 SQL Server的函数
18.3 查询存储过程及函数的定义
第19章 触发器
19.1 触发器与存储过程及约束的差异
19.2 触发器中引用的两个临时表
19.3 Oracle的触发器
19.3.1 触发器类型
19.3.2 DDL触发器
19.3.3 DML触发器
19.3.4 系统触发器
19.4 SQL Server的触发器
19.4.1 SQL Server触发器类型
19.4.2 DDL触发器
19.4.3 DML触发器
19.4.4 logon触发器
19.5 管理触发器
19.5.1 查询触发器定义
19.5.2 删除触发器
19.5.3 修改触发器定义
19.5.4 启用和禁用触发器
第20章 数据字典及系统信息查询
20.1 数据字典视图简介
20.2 数据字典视图分类
20.3 获得所有数据字典视图
20.4 Oracle与SQL Server常用数据字典视图的对应关系
20.4.1 服务器配置参数
20.4.2 数据库配置参数
20.4.3 存储空间
20.4.4 数据库对象
20.4.5 用户与权限
20.4.6 重做日志
20.4.7 事务
20.4.8 锁
20.4.9 进程与连接信息
20.5 常用系统信息查询
20.5.1 查询产品版本
20.5.2 查询配置参数
20.5.3 查询内存配置和使用情况
20.5.4 获取当前系统时间
20.5.5 查看当前用户
20.5.6 查看表的结构
20.5.7 查看存储过程、函数及触发器定义
第21章 备份恢复
21.1 备份恢复工具
21.2 备份种类
21.3 restore与recover命令的含义
21.4 备份语法
21.4.1 全库备份
21.4.2 文件及表空间(文件组)备份
21.4.3 差异备份
21.4.4 SQL Server的事务日志备份
21.5 恢复语法
21.5.1 rman中的恢复语法
21.5.2 SQL Server中的恢复语法
21.6 备份恢复实践
21.6.1 Oracle全库备份及恢复的完整过程
21.6.2 SQL Server全库备份及恢复的完整过程
第22章 导入导出数据
22.1 导入导出数据的主要工具
22.2 Oracle的expdp/impdp与SQL Server的bcp
22.2.1 Oracle的expdp/impdp
22.2.2 SQL Server的bcp
22.3 Oracle的SQL*Loader工具与SQL Server的bulk insert命令
22.3.1 Oracle的SQL*Loader工具
22.3.2 SQL Server的bulk insert命令
22.4 SQL Server的导入导出向导(SSIS)
第23章 闪回数据库
23.1 闪回原理
23.2 基本配置
23.3 对数据库执行闪回操作
23.3.1 Oracle的情形
23.3.2 SQL Server的情形
23.4 Oracle数据库的其他闪回功能
23.4.1 闪回查询(flashback query)
23.4.2 闪回删除的记录
23.4.3 闪回删除的表
23.5 小结
参考文献