VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

数据类型

Vastbase在MySQL兼容模式下支持的数据类型如下:

类型 描述 存储空间
binary(N) binary类型是固定长度二进制字符串,指定长度后未满足长度的将自动补齐。
binary与char相似,可存储字符,不同的是binary存储的是二进制值。
binary(N)中的N指的是字节长度。N取值范围为1~255(默认为1)。
最大为255字节
longtext 变长字符串。 最大为1GB,但还需要考虑到列描述头信息的大小, 以及列所在元组的大小限制(也小于1GB),因此longtext类型最大小于1GB。
datetime datetime[n]用于设置显示毫秒后面的多少位,n表示获取的位数,取值为1~6。 8字节
longblob longblob是一种存储二进制数据的数据类型,可以用于存储大型二进制对象(blob),例如图像,音频和视频等数据。 最大为1GB减8203字节(即1073733621字节)。
int(N) 常用的整数(Vastbase仅做语法支持,没有实际意义)。 4字节
tinyint(N) 微整数(Vastbase仅做语法支持,没有实际意义)。 1字节
bigint(N) 大范围整数(Vastbase仅做语法支持,没有实际意义)。 8字节

注意事项

  • binary、datetime、bigint(N)、tinyint(N)、int(N)数据类型仅在数据库兼容模式为MySQL时能够使用(即创建DB时DBCOMPATIBILITY='B'),在其他数据库兼容模式下不能使用该特性。
  • datetime[n]数据类型的实现依赖Vastbase现有timestamp数据类型,因此,在一些场景中,例如\d元命令中,datetime数据类型会被显示成timestamp类型。
  • 当datetime[n]类型指定了小数位之后,如果datetime[n]类型的数据小数位都是0,则在Vastbase数据库中,受到timestamp数据类型的局限,其小数位上的0将不做显示。
  • int(N),tinyint(N),bigint(N)的写法仅在Vastbase G100 V2.2 Build 10(Patch No.9)及以后版本支持。

示例

前置步骤:创建兼容MySQL的库db_mysql,并进入。

CREATE DATABASE db_mysql DBCOMPATIBILITY='B';
\c db_mysql

示例1:binary类型。

1、创建测试binary类型的表test_mysql_type2并插入测试数据。

CREATE TABLE test_mysql_type2(c1 binary(10));
INSERT INTO test_mysql_type2 values('a');
INSERT INTO test_mysql_type2 values('张三');

2、验证binary数据类型。

SELECT * FROM test_mysql_type2;

当结果显示如下信息,则表示验证完成。

           c1
------------------------
 \x61000000000000000000
 \xe5bca0e4b88900000000
(2 rows)

示例2:longtext类型。

1、创建测试表test_mysql_type3并插入测试数据。

CREATE TABLE test_mysql_type3(c1 longtext);
INSERT INTO test_mysql_type3 values('测试abc123');

2、验证longtext数据类型。

SELECT * FROM test_mysql_type3;

当结果显示如下信息,则表示验证完成。

   c1
------------------
 测试abc123
(1 row)

示例3:datetime类型。

1、创建测试datetime类型的表test_mysql_type4并插入测试数据。

CREATE TABLE test_mysql_type4(c1 datetime);
INSERT INTO test_mysql_type4 values('2019-03-05 01:53:55.63');

2、验证datetime数据类型。

SELECT * FROM test_mysql_type4;

当结果显示如下信息,则表示验证完成。

     c1
--------------------------
 2019-03-05 01:53:55.63
(1 row)

示例4:测试longtext类型、longblob类型。

1、创建测试表并插入数据。

create table tb_1156158(c1 longtext,c2 longblob);
insert into tb_1156158 values ('abc','abc');
insert into tb_1156158 values ('abc \153\154\155 \052\251\124','ef');

2、查询表中数据。

select * from tb_1156158;

返回结果为:

              c1               |  c2
-------------------------------+------
 abc                           | 0ABC
 abc \153\154\155 \052\251\124 | EF
(2 rows)