MYSQL、ORACLE、TBASE、DM 数据库对比
数据类型差异 :
字符串:
以上数据库均支持标准的字符CHAR/VARCHAR 但Oracle与DM提供VARCHAR2
目前VARCHAR2与VARCHAR 无差别。但Oracle官方提示 VARCHAR2不会随VARCHAR的改变而改变。即考虑未来兼容性在Oracle等数据库推荐使用VARCHAR2
BLOB
MYSQL 的BLOB 可以对应JDBC 的byte[] 而非Blob类
数字类型
- 1、Mysql :TINYINT、INT 、LONG、FLOAT 、DOUBLE
2、Oracle :INTERGER、 NUMBER,NUMERIC,FlOAT ,DOUBLE
( NUMBER可以表示所有数字类型NUMBER(38,0)==INTERGER 但不推荐直接使用NUMBER,在JDBC转换可以发生 INT数据转换为JAVA的LONG类型导致使用时发生强转异常)
-
3、TBASE :SMALLINT(INT2)、INTEGER、BIGINT(INT8)、DECIMAL(FLOAT8)、NUMERIC、REAL(FLOAT) 、SERIAL(自增整数4字节)、BIGSERIAL(大范围的自增整数8字节)
-
4、DM:、常用部分同ORACLE
语法差异
- 1、属性与字符串标识
以上数据库均遵从标准SQL规范 字符串使用单引号'''标识,属性使用双引号标识'"'
但MYSQL 可以使用'`'标识属性;''','"'等标识字符串。
代码中不得不使用原生SQL语句时,考虑兼容性问题,禁止使用'"'标识字符串。
- 2、属性及表注释
MYSQL (属性 类型 COMMENT '注释')
ORACLE、达梦、TBASE 均不能在创建表是直接注释 (
-- 表注释
COMMENT ON TABLE WOF_TB_ADMIN IS '管理员表';
-- 属性注释
COMMENT ON COLUMN WOF_TB_ADMIN.ADMIN_ID IS '管理员ID';
)
- 3、主键索引差异
除TBASE不支持建表时添加主键外,其他数据库,建表语句后使用PRIMARY KEY("主键")
除MYSQL 支持建表时建立索引外,其他数据库均不支持建表时建立索引。只能建表后手动修改。