Oracle SQL高级编程
第1章 SQL核心
1.1 SQL语言
1.2 数据库的接口
1.3 SQL*Plus 回顾
1.3.1 连接到数据库
1.3.2 配置SQL*Plus环境
1.3.3 执行命令
1.4 5 个核心的SQL语句
1.5 SELECT语句
1.5.1 FROM子句
查看完整
1.1 SQL语言
1.2 数据库的接口
1.3 SQL*Plus 回顾
1.3.1 连接到数据库
1.3.2 配置SQL*Plus环境
1.3.3 执行命令
1.4 5 个核心的SQL语句
1.5 SELECT语句
1.5.1 FROM子句
查看完整
作者:莫顿(Karen Morton) (美国)Kerry Osborne (美国)Robyn Sands 等 译者:朱浩波
莫顿,Karen Morton,研究人员、教育家及顾问,Fidelity信息服务公司的资深数据库管理员和性能调优专家。她从20世纪90年代初就开始使用Oracle,从事 Oracle的教学工作也已经超过10年的时间。她是Oracle ACE,也是OakTable(Oracle社区中著名的“Oracle科学家”的非正式组织)的成员,经常在技术会议上演讲。她的著作还包括 Expert Oracle Practices和Beginning Oracle SQL。
Kerry Osborne,专注于Oracle咨询的Enkitec公司的创始人之一。从1982年开始使用Oracle(第2版)。他当过开发人员,也做过DBA,…
查看完整
莫顿,Karen Morton,研究人员、教育家及顾问,Fidelity信息服务公司的资深数据库管理员和性能调优专家。她从20世纪90年代初就开始使用Oracle,从事 Oracle的教学工作也已经超过10年的时间。她是Oracle ACE,也是OakTable(Oracle社区中著名的“Oracle科学家”的非正式组织)的成员,经常在技术会议上演讲。她的著作还包括 Expert Oracle Practices和Beginning Oracle SQL。
Kerry Osborne,专注于Oracle咨询的Enkitec公司的创始人之一。从1982年开始使用Oracle(第2版)。他当过开发人员,也做过DBA,…
查看完整
《Oracle SQL高级编程》主要讲述了作者以精炼、风趣的语言揭开了Oracle SQL高级编程的神秘面纱。书中所涵盖的内容涉及SQL核心、SQL执行、分析函数、联结、测试与质量保证等,并提供大量实用性建议,且总结出方方面面的“技巧”帮助读者在阅读过程中快速消化所看内容。《Oracle SQL高级编程》适合软件研发专业人士阅读,对软件项目管理感兴趣的社会各界人士也能从中获益。
第1章 SQL核心
1.1 SQL语言
1.2 数据库的接口
1.3 SQL*Plus 回顾
1.3.1 连接到数据库
1.3.2 配置SQL*Plus环境
1.3.3 执行命令
1.4 5 个核心的SQL语句
1.5 SELECT语句
1.5.1 FROM子句
1.5.2 WHERE子句
1.5.3 GROUP BY子句
1.5.4 HAVING子句
1.5.5 SELECT列表
1.5.6 ORDERBY子句
1.6 INSERT语句
1.6.1 单表插入
1.6.2 多表插入
1.7 UPDATE语句
1.8 DELETE语句
1.9 MERGE语句
1.10 小结
第2章 SQL执行
2.1 Oracle架构基础
2.2 SGA-共享池
2.3 库高速缓存
2.4 完全相同的语句
2.5 SGA-缓冲区缓存
2.6 查询转换
2.7 视图合并
2.8 子查询解嵌套
2.9 谓语前推
2.10 使用物化视图进行查询重写
2.11 确定执行计划
2.12 执行计划并取得数据行
2.13 SQL执行--总览
2.14 小结
第3章 访问和联结方法
3.1 全扫描访问方法
3.1.1 如何选择全扫描操作
3.1.2 全扫描与舍弃
3.1.3 全扫描与多块读取
3.1.4 全扫描与高水位线
3.2 索引扫描访问方法
3.2.1 索引结构
3.2.2 索引扫描类型
3.2.3 索引唯一扫描
3.2.4 索引范围扫描
3.2.5 索引全扫描
3.2.6 索引跳跃扫描
3.2.7 索引快速全扫描
3.3 联结方法
3.3.1 嵌套循环联结
3.3.2 排序-合并联结
3.3.3 散列联结
3.3.4 笛卡儿联结
3.3.5 外联结
3.4 小结
第4章 SQL是关于集合的
4.1 以面向集合的思维方式来思考
4.1.1 从面向过程转变为基于集合的思维方式
4.1.2 面向过程vs.基于集合的思维方式:一个例子
4.2 集合运算
4.2.1 UNION和UNION ALL
4.2.2 MINUS
4.2.3 INTERSECT
4.3 集合与空值
4.3.1 空值与非直观结果
4.3.2 集合运算中的空值行为
4.3.3 空值与GROUP BY和ORDER BY
4.3.4 空值与聚合函数
4.4 小结
第5章 关于问题
5.1 问出好的问题
5.2 提问的目的
5.3 问题的种类
5.4 关于问题的问题
5.5 关于数据的问题
5.6 建立逻辑表达式
5.7 小结
第6章 SQL执行计划
6.1 解释计划
6.1.1 使用解释计划
6.1.2 理解解释计划可能达不到目的的方式
6.1.3 阅读计划
6.2 执行计划
6.2.1 查看最近生成的SQL语句
6.2.2 查看相关执行计划
6.2.3 收集执行计划统计信息
6.2.4 标识SQL语句以便以后取回计划
6.2.5 深入理解DBMS_XPLAN的细节
6.2.6 使用计划信息来解决问题
6.3 小结
第7章 高级分组
7.1 基本的GROUP BY用法
7.2 HAVING子句
7.3 GROUP BY的"新"功能
7.4 GROUP BY的CUBE扩展
7.5 CUBE的实际应用
7.6 通过GROUPING()函数排除空值
7.7 用GROUPING()来扩展报告
7.8 使用GROUPING_ID()来扩展报告
7.9 GROUPING SETS与ROLLUP()
7.10 GROUP BY局限性
7.11 小结
第8章 分析函数
8.1 示例数据
8.2 分析函数剖析
8.3 函数列表
8.4 聚合函数
8.4.1 跨越整个分区的聚合函数
8.4.2 细粒度窗口声明
8.4.3 默认窗口声明
8.5 Lead和Lag
8.5.1 语法和排序
8.5.2 例1:从前一行中返回一个值
8.5.3 理解数据行的位移
8.5.4 例2:从下一行中返回一个值
8.6 First_value和Last_value
8.6.1 例子:使用First_value来计算最大值
8.6.2 例子:使用Last_value来计算最小值
8.7 其他分析函数
8.7.1 Nth_value(11gR2)
8.7.2 Rank
8.7.3 Dense_rank
8.7.4 Row_number
8.7.5 Ratio_to_report
8.7.6 Percent_rank
8.7.7 Percentile_cont
8.7.8 Percentile_disc
8.7.9 NTILE
8.7.10 Stddev
8.7.11 Listagg
8.8 性能调优
8.8.1 执行计划
8.8.2 谓语
8.8.3 索引
8.9 高级话题
8.9.1 动态SQL
8.9.2 嵌套分析函数
8.9.3 并行
8.9.4 PGA大小
8.10 组织行为
8.11 小结
第9章 Model子句
9.1 电子表格
9.2 通过Model子句进行跨行引用
9.2.1 示例数据
9.2.2 剖析Model子句
9.2.3 规则
9.3 位置和符号引用
9.3.1 位置标记
9.3.2 符号标记
9.3.3 FOR循环
9.4 返回更新后的行
9.5 求解顺序
9.5.1 行求解顺序
9.5.2 规则求解顺序
9.6 聚合
9.7 迭代
9.7.1 一个例子
9.7.2 PRESENTV与空值
9.8 查找表
9.9 空值
9.10 使用Model子句进行性能调优
9.10.1 执行计划
9.10.2 谓语前推
9.10.3 物化视图
9.10.4 并行
9.10.5 Model子句执行中的分区
9.10.6 索引
9.11 子查询因子化
9.12 小结
第10章 子查询因子化
10.1 标准用法
10.2 SQL优化
10.2.1 测试执行计划
10.2.2 跨多个执行的测试
10.2.3 测试查询改变的影响
10.2.4 寻找其他优化机会
10.2.5 将子查询因子化应用到PL/SQL中
10.3 递归子查询
10.3.1 一个CONNECT BY的例子
10.3.2 使用RSF的例子
10.3.3 RSF的限制条件
10.3.4 与CONNECT BY的不同点
10.4 复制CONNECT BY的功能
10.4.1 LEVEL伪列
10.4.2 SYS_CONNECT_BY_PATH函数
10.4.3 CONNECT_BY_ROOT运算符
10.4.4 CONNECT_BY_ISCYCLE伪列和NOCYCLE参数
10.4.5 CONNECT_BY_ISLEAF伪列
10.5 小结
第11章 半联结和反联结
11.1 半联结
11.2 半联结执行计划
11.3 控制半联结执行计划
11.3.1 使用提示控制半联结执行计划
11.3.2 在实例级控制半联结执行计划
11.4 半联结限制条件
11.5 半联结必要条件
11.6 反联结
11.7 反联结执行计划
11.8 控制反联结执行计划
11.8.1 使用提示控制反联结执行计划
11.8.2 在实例级控制反联结执行计划
11.9 反联结限制条件
11.10 反联结必要条件
11.11 小结
第12章 索引
12.1 理解索引
12.1.1 什么时候使用索引
12.1.2 列的选择
12.1.3 空值问题
12.2 索引结构类型
12.2.1 B-树索引
12.2.2 位图索引
12.2.3 索引组织表
12.3 分区索引
12.3.1 局部索引
12.3.2 全局索引
12.3.3 散列分区与范围分区
12.4 与应用特点相匹配的解决方案
12.4.1 压缩索引
12.4.2 基于函数的索引
12.4.3 反转键索引
12.4.4 降序索引
12.5 管理问题的解决方案
12.5.1 不可见索引
12.5.2 虚拟索引
12.5.3 位图联结索引
12.6 小结
第13章 SELECT以外的内容
13.1 INSERT
13.1.1 直接路径插入
13.1.2 多表插入
13.1.3 条件插入
13.1.4 DML错误日志
13.2 UPDATE
13.3 DELETE
13.4 MERGE
13.4.1 语法和用法
13.4.2 性能比较
13.5 小结
第14章 事务处理
14.1 什么是事务
14.2 事务的ACID属性
14.3 事务隔离级别
14.4 多版本读一致性
14.5 事务控制语句
14.5.1 Commit(提交)
14.5.2 Savepoint(保存点)
14.5.3 Rollback(回滚)
14.5.4 Set Transaction(设置事务)
14.5.5 Set Constraints(设置约束)
14.6 将运算分组为事务
14.7 订单录入模式
14.8 活动事务
14.9 使用保存点
14.10 序列化事务
14.11 隔离事务
14.12 自治事务
14.13 小结
第15章 测试与质量保证
15.1 测试用例
15.2 测试方法
15.3 单元测试
15.4 回归测试
15.5 模式修改
15.6 重复单元测试
15.7 执行计划比较
15.8 性能测量
15.9 在代码中加入性能测量
15.10 性能测试
15.11 破坏性测试
15.12 通过性能测量进行系统检修
15.13 小结
第16章 计划稳定性与控制
16.1 计划不稳定性:理解这个问题
16.1.1 统计信息的变化
16.1.2 运行环境的改变
16.1.3 SQL语句的改变
16.1.4 绑定变量窥视
16.2 识别执行计划的不稳定性
16.2.1 抓取当前所运行查询的数据
16.2.2 查看一条语句的性能历史
16.2.3 按照执行计划聚合统计信息
16.2.4 寻找执行计划的统计方差
16.2.5 在一个时间点附近检查偏差
16.3 执行计划控制:解决问题
16.3.1 调整查询结构
16.3.2 适当使用常量
16.3.3 给优化器一些提示
16.4 执行计划控制:不能直接访问代码
16.4.1 选项1:改变统计信息
16.4.2 选项2:改变数据库参数
16.4.3 选项3:增加或移除访问路径
16.4.4 选项4:应用基于提示的执行计划控制机制
16.4.5 大纲
16.4.6 SQL概要文件
16.4.7 SQL执行计划基线
16.4.8 基于提示的执行计划控制机制总结
16.5 结论
^ 收 起
1.1 SQL语言
1.2 数据库的接口
1.3 SQL*Plus 回顾
1.3.1 连接到数据库
1.3.2 配置SQL*Plus环境
1.3.3 执行命令
1.4 5 个核心的SQL语句
1.5 SELECT语句
1.5.1 FROM子句
1.5.2 WHERE子句
1.5.3 GROUP BY子句
1.5.4 HAVING子句
1.5.5 SELECT列表
1.5.6 ORDERBY子句
1.6 INSERT语句
1.6.1 单表插入
1.6.2 多表插入
1.7 UPDATE语句
1.8 DELETE语句
1.9 MERGE语句
1.10 小结
第2章 SQL执行
2.1 Oracle架构基础
2.2 SGA-共享池
2.3 库高速缓存
2.4 完全相同的语句
2.5 SGA-缓冲区缓存
2.6 查询转换
2.7 视图合并
2.8 子查询解嵌套
2.9 谓语前推
2.10 使用物化视图进行查询重写
2.11 确定执行计划
2.12 执行计划并取得数据行
2.13 SQL执行--总览
2.14 小结
第3章 访问和联结方法
3.1 全扫描访问方法
3.1.1 如何选择全扫描操作
3.1.2 全扫描与舍弃
3.1.3 全扫描与多块读取
3.1.4 全扫描与高水位线
3.2 索引扫描访问方法
3.2.1 索引结构
3.2.2 索引扫描类型
3.2.3 索引唯一扫描
3.2.4 索引范围扫描
3.2.5 索引全扫描
3.2.6 索引跳跃扫描
3.2.7 索引快速全扫描
3.3 联结方法
3.3.1 嵌套循环联结
3.3.2 排序-合并联结
3.3.3 散列联结
3.3.4 笛卡儿联结
3.3.5 外联结
3.4 小结
第4章 SQL是关于集合的
4.1 以面向集合的思维方式来思考
4.1.1 从面向过程转变为基于集合的思维方式
4.1.2 面向过程vs.基于集合的思维方式:一个例子
4.2 集合运算
4.2.1 UNION和UNION ALL
4.2.2 MINUS
4.2.3 INTERSECT
4.3 集合与空值
4.3.1 空值与非直观结果
4.3.2 集合运算中的空值行为
4.3.3 空值与GROUP BY和ORDER BY
4.3.4 空值与聚合函数
4.4 小结
第5章 关于问题
5.1 问出好的问题
5.2 提问的目的
5.3 问题的种类
5.4 关于问题的问题
5.5 关于数据的问题
5.6 建立逻辑表达式
5.7 小结
第6章 SQL执行计划
6.1 解释计划
6.1.1 使用解释计划
6.1.2 理解解释计划可能达不到目的的方式
6.1.3 阅读计划
6.2 执行计划
6.2.1 查看最近生成的SQL语句
6.2.2 查看相关执行计划
6.2.3 收集执行计划统计信息
6.2.4 标识SQL语句以便以后取回计划
6.2.5 深入理解DBMS_XPLAN的细节
6.2.6 使用计划信息来解决问题
6.3 小结
第7章 高级分组
7.1 基本的GROUP BY用法
7.2 HAVING子句
7.3 GROUP BY的"新"功能
7.4 GROUP BY的CUBE扩展
7.5 CUBE的实际应用
7.6 通过GROUPING()函数排除空值
7.7 用GROUPING()来扩展报告
7.8 使用GROUPING_ID()来扩展报告
7.9 GROUPING SETS与ROLLUP()
7.10 GROUP BY局限性
7.11 小结
第8章 分析函数
8.1 示例数据
8.2 分析函数剖析
8.3 函数列表
8.4 聚合函数
8.4.1 跨越整个分区的聚合函数
8.4.2 细粒度窗口声明
8.4.3 默认窗口声明
8.5 Lead和Lag
8.5.1 语法和排序
8.5.2 例1:从前一行中返回一个值
8.5.3 理解数据行的位移
8.5.4 例2:从下一行中返回一个值
8.6 First_value和Last_value
8.6.1 例子:使用First_value来计算最大值
8.6.2 例子:使用Last_value来计算最小值
8.7 其他分析函数
8.7.1 Nth_value(11gR2)
8.7.2 Rank
8.7.3 Dense_rank
8.7.4 Row_number
8.7.5 Ratio_to_report
8.7.6 Percent_rank
8.7.7 Percentile_cont
8.7.8 Percentile_disc
8.7.9 NTILE
8.7.10 Stddev
8.7.11 Listagg
8.8 性能调优
8.8.1 执行计划
8.8.2 谓语
8.8.3 索引
8.9 高级话题
8.9.1 动态SQL
8.9.2 嵌套分析函数
8.9.3 并行
8.9.4 PGA大小
8.10 组织行为
8.11 小结
第9章 Model子句
9.1 电子表格
9.2 通过Model子句进行跨行引用
9.2.1 示例数据
9.2.2 剖析Model子句
9.2.3 规则
9.3 位置和符号引用
9.3.1 位置标记
9.3.2 符号标记
9.3.3 FOR循环
9.4 返回更新后的行
9.5 求解顺序
9.5.1 行求解顺序
9.5.2 规则求解顺序
9.6 聚合
9.7 迭代
9.7.1 一个例子
9.7.2 PRESENTV与空值
9.8 查找表
9.9 空值
9.10 使用Model子句进行性能调优
9.10.1 执行计划
9.10.2 谓语前推
9.10.3 物化视图
9.10.4 并行
9.10.5 Model子句执行中的分区
9.10.6 索引
9.11 子查询因子化
9.12 小结
第10章 子查询因子化
10.1 标准用法
10.2 SQL优化
10.2.1 测试执行计划
10.2.2 跨多个执行的测试
10.2.3 测试查询改变的影响
10.2.4 寻找其他优化机会
10.2.5 将子查询因子化应用到PL/SQL中
10.3 递归子查询
10.3.1 一个CONNECT BY的例子
10.3.2 使用RSF的例子
10.3.3 RSF的限制条件
10.3.4 与CONNECT BY的不同点
10.4 复制CONNECT BY的功能
10.4.1 LEVEL伪列
10.4.2 SYS_CONNECT_BY_PATH函数
10.4.3 CONNECT_BY_ROOT运算符
10.4.4 CONNECT_BY_ISCYCLE伪列和NOCYCLE参数
10.4.5 CONNECT_BY_ISLEAF伪列
10.5 小结
第11章 半联结和反联结
11.1 半联结
11.2 半联结执行计划
11.3 控制半联结执行计划
11.3.1 使用提示控制半联结执行计划
11.3.2 在实例级控制半联结执行计划
11.4 半联结限制条件
11.5 半联结必要条件
11.6 反联结
11.7 反联结执行计划
11.8 控制反联结执行计划
11.8.1 使用提示控制反联结执行计划
11.8.2 在实例级控制反联结执行计划
11.9 反联结限制条件
11.10 反联结必要条件
11.11 小结
第12章 索引
12.1 理解索引
12.1.1 什么时候使用索引
12.1.2 列的选择
12.1.3 空值问题
12.2 索引结构类型
12.2.1 B-树索引
12.2.2 位图索引
12.2.3 索引组织表
12.3 分区索引
12.3.1 局部索引
12.3.2 全局索引
12.3.3 散列分区与范围分区
12.4 与应用特点相匹配的解决方案
12.4.1 压缩索引
12.4.2 基于函数的索引
12.4.3 反转键索引
12.4.4 降序索引
12.5 管理问题的解决方案
12.5.1 不可见索引
12.5.2 虚拟索引
12.5.3 位图联结索引
12.6 小结
第13章 SELECT以外的内容
13.1 INSERT
13.1.1 直接路径插入
13.1.2 多表插入
13.1.3 条件插入
13.1.4 DML错误日志
13.2 UPDATE
13.3 DELETE
13.4 MERGE
13.4.1 语法和用法
13.4.2 性能比较
13.5 小结
第14章 事务处理
14.1 什么是事务
14.2 事务的ACID属性
14.3 事务隔离级别
14.4 多版本读一致性
14.5 事务控制语句
14.5.1 Commit(提交)
14.5.2 Savepoint(保存点)
14.5.3 Rollback(回滚)
14.5.4 Set Transaction(设置事务)
14.5.5 Set Constraints(设置约束)
14.6 将运算分组为事务
14.7 订单录入模式
14.8 活动事务
14.9 使用保存点
14.10 序列化事务
14.11 隔离事务
14.12 自治事务
14.13 小结
第15章 测试与质量保证
15.1 测试用例
15.2 测试方法
15.3 单元测试
15.4 回归测试
15.5 模式修改
15.6 重复单元测试
15.7 执行计划比较
15.8 性能测量
15.9 在代码中加入性能测量
15.10 性能测试
15.11 破坏性测试
15.12 通过性能测量进行系统检修
15.13 小结
第16章 计划稳定性与控制
16.1 计划不稳定性:理解这个问题
16.1.1 统计信息的变化
16.1.2 运行环境的改变
16.1.3 SQL语句的改变
16.1.4 绑定变量窥视
16.2 识别执行计划的不稳定性
16.2.1 抓取当前所运行查询的数据
16.2.2 查看一条语句的性能历史
16.2.3 按照执行计划聚合统计信息
16.2.4 寻找执行计划的统计方差
16.2.5 在一个时间点附近检查偏差
16.3 执行计划控制:解决问题
16.3.1 调整查询结构
16.3.2 适当使用常量
16.3.3 给优化器一些提示
16.4 执行计划控制:不能直接访问代码
16.4.1 选项1:改变统计信息
16.4.2 选项2:改变数据库参数
16.4.3 选项3:增加或移除访问路径
16.4.4 选项4:应用基于提示的执行计划控制机制
16.4.5 大纲
16.4.6 SQL概要文件
16.4.7 SQL执行计划基线
16.4.8 基于提示的执行计划控制机制总结
16.5 结论
^ 收 起
作者:莫顿(Karen Morton) (美国)Kerry Osborne (美国)Robyn Sands 等 译者:朱浩波
莫顿,Karen Morton,研究人员、教育家及顾问,Fidelity信息服务公司的资深数据库管理员和性能调优专家。她从20世纪90年代初就开始使用Oracle,从事 Oracle的教学工作也已经超过10年的时间。她是Oracle ACE,也是OakTable(Oracle社区中著名的“Oracle科学家”的非正式组织)的成员,经常在技术会议上演讲。她的著作还包括 Expert Oracle Practices和Beginning Oracle SQL。
Kerry Osborne,专注于Oracle咨询的Enkitec公司的创始人之一。从1982年开始使用Oracle(第2版)。他当过开发人员,也做过DBA,目前是 Oracle ACE总监和OakTable成员。最近几年,他专注于研究Oracle内部原理以及解决性能问题。
Robyn Sands,思科公司的软件工程师,为思科的客户设计开发嵌入式Oracle数据库产品。从1996年开始使用Oracle,在应用开发、大型系统实现以及性能评估方面具有丰富的经验。她是OakTable的成员,同时是Expert Oracle Practices (2010年 Apress出版)一书的合著者。
Riyaj Shamsudeen,专注于性能/数据恢复/电子商务的咨询公司OraInternals的首席数据库管理员和董事长。有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。
Jared Still,从1994年就开始使用Oracle。他认为对于SQL的学习是永无止境的,相信每一个查询Oracle数据库的人都需要精通SQL语言,才能写出高效的查询。他参与本书的编写就是为了帮助别人实现这一目标。
^ 收 起
莫顿,Karen Morton,研究人员、教育家及顾问,Fidelity信息服务公司的资深数据库管理员和性能调优专家。她从20世纪90年代初就开始使用Oracle,从事 Oracle的教学工作也已经超过10年的时间。她是Oracle ACE,也是OakTable(Oracle社区中著名的“Oracle科学家”的非正式组织)的成员,经常在技术会议上演讲。她的著作还包括 Expert Oracle Practices和Beginning Oracle SQL。
Kerry Osborne,专注于Oracle咨询的Enkitec公司的创始人之一。从1982年开始使用Oracle(第2版)。他当过开发人员,也做过DBA,目前是 Oracle ACE总监和OakTable成员。最近几年,他专注于研究Oracle内部原理以及解决性能问题。
Robyn Sands,思科公司的软件工程师,为思科的客户设计开发嵌入式Oracle数据库产品。从1996年开始使用Oracle,在应用开发、大型系统实现以及性能评估方面具有丰富的经验。她是OakTable的成员,同时是Expert Oracle Practices (2010年 Apress出版)一书的合著者。
Riyaj Shamsudeen,专注于性能/数据恢复/电子商务的咨询公司OraInternals的首席数据库管理员和董事长。有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。
Jared Still,从1994年就开始使用Oracle。他认为对于SQL的学习是永无止境的,相信每一个查询Oracle数据库的人都需要精通SQL语言,才能写出高效的查询。他参与本书的编写就是为了帮助别人实现这一目标。
^ 收 起
《Oracle SQL高级编程》主要讲述了作者以精炼、风趣的语言揭开了Oracle SQL高级编程的神秘面纱。书中所涵盖的内容涉及SQL核心、SQL执行、分析函数、联结、测试与质量保证等,并提供大量实用性建议,且总结出方方面面的“技巧”帮助读者在阅读过程中快速消化所看内容。《Oracle SQL高级编程》适合软件研发专业人士阅读,对软件项目管理感兴趣的社会各界人士也能从中获益。
比价列表