GBase 8c
适配迁移
文章

GBase8c数据类型总概

发表于2025-12-24 10:56:0530次浏览1个评论

在GBase 8c 中,数据类型大致可以分为基本数据类型和复合数据类型两大类。GBase 8c 是基于 PostgreSQL 的一个开源数据库,因此很多数据类型和 PostgreSQL 是相似的。下面是一些常用的数据类型:

基本数据类型

  1. 数值类型

    • SMALLINT:2字节有符号整数,范围是-32768到32767。

    • INTEGERINT:4字节有符号整数,范围是-2147483648到2147483647。

    • BIGINT:8字节有符号整数,范围极大。

    • DECIMALNUMERIC:定点数,适用于财务计算。

    • REAL:4字节浮点数。

    • DOUBLE PRECISION:8字节双精度浮点数。

    • SMALLSERIALSERIAL:自动增加的整数,通常用于主键。

    • BIGSERIAL:自动增加的8字节整数。

  2. 字符串类型

    • CHAR(n):定长字符串,长度为n。

    • VARCHAR(n)CHARACTER VARYING(n):变长字符串,长度最多为n。

    • TEXT:变长字符串,最大长度可以非常大(取决于系统限制)。

  3. 日期/时间类型

    • DATE:日期(年-月-日)。

    • TIME:时间(时:分:秒)。

    • TIMESTAMP:日期和时间(年-月-日 时:分:秒)。

    • INTERVAL:时间间隔。

  4. 布尔类型

    • BOOLEAN:逻辑真/假值。

  5. 二进制数据类型

    • BYTEA:二进制数据类型,用于存储字节序列。

  6. 枚举类型

    • ENUM:用户定义的枚举类型,例如CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');

  7. 网络地址类型

    • CIDR:网络地址(IPv4或IPv6)及其子网掩码。

    • INET:IPv4或IPv6地址。

    • MACADDR:MAC地址。

复合数据类型

  1. 数组类型
    GBase 8c 支持数组类型,例如INTEGER[]VARCHAR(50)[]。数组可以是多维的。

  2. 复合类型
    可以通过CREATE TYPE语句创建自己的复合类型,例如定义一个包含多个字段的结构。

  3. 范围类型
    支持范围类型,例如INT4RANGE, NUMRANGE, 等等,用于存储数值范围。

特殊类型

  • JSON 和 JSONB 类型‌:用于存储 JSON 数据,JSONB 是二进制格式的 JSON 数据,存储效率更高。

  • UUID 类型‌:用于存储 UUID 值。

  • XML 类型‌:用于存储 XML 数据。

  • 位串类型‌:如BIT(n)BIT VARYING(n),用于存储位串数据。

创建和使用自定义数据类型

你可以使用 SQL 语句来创建自定义的数据类型,例如枚举和复合类型,以及修改现有表的列以使用这些数据类型。例如:  

CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy'); CREATE TABLE person (name VARCHAR(100), feeling mood);

这样,person表中的feeling列就可以使用mood枚举类型的值了。

在使用 GBase 8c 或任何数据库系统时,建议查阅最新的官方文档或使用手册以获取最准确和最新的信息,因为不同的数据库版本可能会有所不同或新增特性。对于 GBase 8c,由于其是基于 PostgreSQL 的开源数据库,很多资料和 PostgreSQL 的相关文档也是适用的。

评论

登录后才可以发表评论
GBase用户47954发表于 1个月前
感谢作者的精彩分享!