GBase 8c兼容性说明

原文链接:
https://www.gbase.cn/community/post/4047
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

GBase 8c作为一款高性能的关系型数据库管理系统,支持行存、列存、内存等多种存储模式和单机、主备与分布式等多种部署形态。GBase 8c具备高性能、高可用、弹性伸缩、高安全性等特性,可以部署在物理机、虚拟机、容器、私有云和公有云,为关键行业核心系统、互联网业务系统和政企业务系统提供安全、稳定、可靠的数据存储和管理服务。通过多方面的设计优化,实现了对多种主流数据库的高度兼容性,为用户提供了灵活的数据处理解决方案。本文旨在详细介绍GBase 8c数据库的兼容性特性,帮助用户理解和充分利用GBase 8c在数据库迁移、集成及多源数据处理方面的优势。

1、兼容性概述

GBase 8c在数据库兼容性方面进行了深入的设计和优化,支持Oracle、PostgreSQL、MySQL、TD等多种关系型数据库的语法和功能。这种广泛的兼容性使得用户在进行数据库迁移、数据集成或跨平台开发时,能够减少转换成本,提高开发效率。

2、兼容性实现

兼容性实现,本文从SQL标准、数据类型、SQL查询、函数等方面来说明。

(1) SQL标准语法兼容

对标准sql语法的支持:

---多表联合查询中笛卡尔积在SQL92的实现:
select * from test_1,test_2 limit 10;

---多表联合查询中全外连接在SQL99的实现
select * from test_1 t1 full outer join test_2  t2 on t1.col=t2.col limit 10;

---多表联合查询中完全连接在SQL2003的实现:
select * from test_1 t1 full join test_2 t2 on t1.col=t2.col;

(2)数据类型兼容性

GBase 8c在不同兼容性模式下,支持相应数据库的数据类型和函数。

针对MySQL兼容的修改主要为:
(1)新增INT/TINYINT/SMALLINT/BIGINT支持可选的修饰符(n),即支持TINYINT(n)/SMALLINT(n)/BIGINT(n)的用法,n无实际意义,不影响任何表现。
(2)新增MEDIUMINT(n)数据类型,是INT4的别名,n无实际作用,不影响任何表现。存储空间为4字节,数据范围为-2,147,483,648~+2,147,483,647。
(3)新增FIXED[(p[,s])]数据类型,是NUMERIC类型的别名。用户声明精度。每四位(十进制位)占用两个字节,然后在整个数据上加上八个字节的额外开销。未指定精度的情况下,小数点前最大131,072位,小数点后最大16,383位。
(4)新增float4(p[,s])的方式,等价于dec(p[,s])。
(5)新增double数据类型,是float8的别名。
(6)新增float4/float支持可选的修饰符(n),即支持float4(n)/float(n)的用法,当n在[1,24]之间时,float4(n)/float(n)代表单精度浮点数;当n在[25,53]之间时,float4(n)/float(n)代表双精度浮点数。
(7)对于decimal/dec/fixed/numeric数据类型,在未指定精度的情况下,默认精度为(10,0),即总位数为10,小数位数为0。
(8)新增UNSIGNEDINT/TINYINT/SMALLINT/BIGINT类型,与普通整型相比,其最高位是数字位而非符号位;此外,在GBase8s中,TINYINT默认为无符号类型,而在B库中则默认是有符号的。
(9)新增zerofill属性修饰,只是语法上的支持,实际并没有填充零的效果。与UNSIGNED的作用等价。
(10)新增cast函数类型转换参数signed/unsigned,其中castasunsigned将类型转换为uint8,castassigned将类型转换为int8.
(11)新增float(p,s),double(p,s),real(p,s),doubleprecision(p,s)的语法,其中float(p,s),real(p,s),doubleprecision(p,s)大致等价于dec(p,s),与dec(p,s)不同的是,float(p,s),real(p,s),doubleprecision(p,s)的p和s必须为整数,而double(p,s)则完全等价于dec(p,s)。舍入方式为四舍五入。

而在Oracle兼容模式下,用户可以使用NUMBER、VARCHAR2等Oracle特有的数据类型,并调用Oracle的内置函数:

(3)sql查询兼容性

在MySQL兼容模式下,你可以使用MySQL的语法来编写SQL查询。例如,使用MySQL特有的LIMIT子句来限制查询结果的数量:

(4)函数使用

在PostgreSQL兼容模式下,你可以使用PostgreSQL的内置函数。例如,使用TO_CHAR函数将日期转换为特定格式的字符串:

SELECT TO_CHAR(NOW(), 'YYYY-MM-DD HH24:MI:SS') AS current_time;

3、结论

GBase 8c数据库通过提供多种兼容性模式,实现了对多种主流关系型数据库的高度兼容。这种兼容性不仅降低了数据库迁移和集成的难度,还提高了开发效率和系统稳定性。通过合理的使用和维护,GBase 8c可以为用户带来更加灵活和高效的数据处理解决方案。

原文链接:
https://www.gbase.cn/community/post/4047
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值