教学文章
Technology Exchange
热门课程
400电话

免费咨询热线
400-090-9964

教学文章

OceanBase与Oracle对比:SQL语法 比较

时间:2023-09-12 来源:

OceanBase 数据库支持 Oracle 数据库中绝大部分的 SQL 语法。

少数功能性缺失会报语法不支持的错误。

SELECT

支持大部分查询功能,包括支持单、多表查询;支持子查询;支持内连接,半连接,外连接;支持分组、聚合;支持层次查询;常见的概率,线性回归等数据挖掘函数等。

支持如下集合操作:UNION、UNION ALL、INTERSECT、MINUS。

支持如下语法查看执行计划:

EXPLAIN [explain_type] dml_statement;

explain_type:

BASIC

| OUTLINE

| EXTENDED

| EXTENDED_NOADDR

| PARTITIONS

| FORMAT = {TRADITIONAL| JSON}

dml_statement:

SELECT statement

| DELETE statement

| INSERT statement

| MERGE INTO statement

| UPDATE statement


INSERT

支持单行、多行插入,同时支持指定分区插入

支持 INSERT INTO ... SELECT ... 语句

支持单表和多表插入


UPDATE

支持单列和多列的更新

支持使用子查询

支持集合更新


DELETE

支持单表和多表的删除


TRUNCATE

支持完全清空指定表


并行查询

支持类 Oracle 数据库的并行查询

OceanBase 数据库支持 Auto DOP 功能,也可以手动通过 Hint 或者 Session 变量指定 DOP。

支持并行 DML


Hint

OceanBase 数据库支持使用 Hint。Oracle 数据库中有 72 个 Hint,目前 OceanBase 数据库兼容 24 个。另外,OceanBase 数据库特有的 Hint 有 23 个。

Hint 是一种 SQL 语句注释,用于将指令传递给 OceanBase 数据库优化器。通过 Hint 可以使优化器生成指定的执行计划。

一般情况下,优化器会为用户查询选择最佳的执行计划,不需要用户使用 Hint 指定,但在某些场景下,优化器生成的执行计划可能无法满足用户的要求,这时就需要用户使用 Hint 来主动指定并生成特殊的执行计划。

Hint 应该尽量少用,在收集了相关表的统计信息并且在没有 Hint 的情况下使用 EXPLAIN PLAN 语句评估了优化器计划之后,才建议用户谨慎考虑使用 Hint。更改数据库条件以及在后续版本中增强查询性能可能会导致您代码中的 Hint 对性能产生重大影响。

版权所有@北京神脑资讯技术有限公司(CUUG,中国UNIX用户协会) Copyright ALL Rights Reserved 京ICP备11008061号-1

CUUG旗下网站:www.cuug.com.cn www.cuug.com oracle.cuug.com bbs.cuug.com www.cuug.net

电话:010-59426307 010-59426319 邮政编码:100089

地址:北京市海淀区北清路164号28-38号院