跳转至

SQL语法兼容

语法兼容性

针对ANSI/ISO SQL89、ANSI/ISO SQL92、ANSI/ISO SQL99、Oracle、MySQL等为代表的国际主流数据库技术标准,SeaboxSQL数据库在服务器、接口、工具等各组件中全面增强了兼容性,屏蔽了SeaboxSQL数据库与这些产品之间的差异,从而减少了现有应用移植和新应用开发的成本,降低了数据库系统管理员、应用开发人员等学习和使用SeaboxSQL数据库的难度。

Oracle语法兼容

SeaboxSQL数据库内部实现了大量的Oracle兼容特性。这些特性从数据类型、SQL语法、标量函数、用户定义包和系统内置包、匿名块、存储过程、触发器和访问接口等多方面对Oracle进行了原生支持。在移植过程中,Oracle程序只需很少甚至不做任何改动就能在SeaboxSQL数据库环境中运行。

Oracle兼容方面的主要实现如下:

  • 功能的兼容

  • 提供兼容Oracle兼容模式的开关

  • 支持Oracle的DUAL伪表

  • 支持Oracle的ROWNUM伪列

  • 支持Oracel的ROWID伪列

  • 支持Oracle的外连接操作符(+)

  • 支持Oracle的MERGE INTO语法

  • 支持Oracle的DBLink功能

  • 支持Oracle的层次查询

  • 支持Oracle的同义词

  • 兼容Oracle对字符串和空值的处理语义

  • 兼容Oracle内置包(DBMS_SQL、DBMS_DDL、DBMS_ALERT、DBMS_JOB、DBMS_ROWID)

  • 支持Oracle的Update多字段

  • 支持启用和禁用外键约束(仅单机支持)、check约束、唯一约束和主键约束

  • 数据类型的兼容

  • 支持Oracle的NUMBER类型

  • 支持Oracle的VARCHAR2类型

  • 兼容Oracle的DATE类型

  • 函数的兼容

  • 支持Oracle的EMPTY_BLOB()EMPTY_CLOB()函数

  • 支持Oracle的NVL、NVL2函数

  • 支持Oracle的TRUNC函数

  • 兼容Oracle的SYSDATE函数

  • 兼容Oracle的TO_NUMBER函数

  • 兼容Oracle的TO_CHAR函数

  • 兼容Oracle的TO_DATE、TO_TIMESTAMP、TO_TIMESTAMPTZ函数

  • 兼容Oracle的ADD_MONTHS、LAST_DAY和NEXT_DAY函数

  • 访问接口的兼容

  • 提供OracleOCI部分兼容接口DCI

  • PL/SQL的兼容

  • 兼容Oracle的关键字RETURN、IS、DECLARE

  • 兼容Oracle的运算符BETWEEN、IN、LIKE

  • 兼容Oracle的使用'+'连接字符串

  • 兼容Oracle的CASE与GOTO语句

  • 兼容Oracle的创建存储过程和函数时参数带有DEFAULT

  • 兼容Oracle的调用存储过程和不带参数的函数不带括号

  • 兼容Oracle的匿名块

  • 兼容Oracle的用户自定义异常

MySQL语法兼容

SeaboxSQL数据库内部实现了大量的MySQL兼容特性,兼容MySQL的各种DML、DAL、DDL语法,其中包括:

  • 兼容绝大部分MySQL函数(包括JSON函数、加密解密函数等)

  • 兼容MySQL 8.0的视图、CTE、窗口函数、分析函数等

  • 支持MySQL的各种数据类型,包括类型精度支持(比如时间戳、Decimal类型)

  • 兼容常见的MySQL字符串Charset及Collation

  • 兼容绝大部分information_schema视图

  • 兼容用户权限体系用法,包括GRANT、REVOKE等