华为高斯数据库的数据类型
华为高斯数据库(
GaussDB,如 openGauss 和 GaussDB(for openGauss))的数据类型非常丰富,大致分为以下几类,与 PostgreSQL 类似但也有一些增强。下面是常见的数据类型分类和具体类型列表。
✅ 一、数值类型(Numeric Types)
类型 |
描述 |
示例 |
SMALLINT |
小整数(2字节) |
-32,768 到 32,767 |
INTEGER |
标准整数(4字节) |
-2^31 到 2^31-1 |
BIGINT |
大整数(8字节) |
很大的整数 |
DECIMAL(p,s) / NUMERIC(p,s) |
精确小数 |
如:DECIMAL(10,2) 表示10位数字,小数2位 |
REAL |
单精度浮点数(4字节) |
大约6位有效数字 |
DOUBLE PRECISION |
双精度浮点(8字节) |
大约15位有效数字 |
SERIAL |
自增整数(4字节) |
自动增长(类似主键) |
BIGSERIAL |
自增大整数(8字节) |
|
✅ 二、字符类型(Character Types)
类型 |
描述 |
CHAR(n) |
固定长度字符串,不足补空格 |
VARCHAR(n) |
可变长度字符串,最大长度为 n |
TEXT |
不限长度的字符串 |
✅ 三、布尔类型(Boolean Type)
类型 |
描述 |
BOOLEAN |
取值为 TRUE , FALSE , NULL |
✅ 四、日期和时间类型(Date & Time Types)
类型 |
描述 |
DATE |
日期,格式如 2025-06-25 |
TIME [ § ] |
时间,不含日期(如 14:30:00) |
TIMESTAMP [ § ] |
日期 + 时间(不含时区) |
TIMESTAMPTZ |
带时区的时间戳 |
INTERVAL |
时间间隔,如 1 day , 2 hours |
✅ 五、二进制类型(Binary Types)
类型 |
描述 |
BYTEA |
存储二进制数据,如图片、文件等 |
✅ 六、JSON 和 XML 类型
类型 |
描述 |
JSON |
存储 JSON 数据 |
JSONB |
存储二进制格式 JSON,支持索引与性能优化 |
XML |
XML 格式数据支持 |
✅ 七、网络类型(Network Address Types)
类型 |
描述 |
INET |
IPv4 或 IPv6 地址 |
CIDR |
网络段,如 192.168.1.0/24 |
MACADDR |
MAC 地址 |
✅ 八、UUID 类型
类型 |
描述 |
UUID |
通用唯一标识符,如 550e8400-e29b-41d4-a716-446655440000 |
✅ 九、数组类型
支持数组形式的数据,如:
INTEGER[]
TEXT[]
例如:VARCHAR(50)[]
表示一个字符串数组。
✅ 十、其他扩展类型(部分场景下支持)
类型 |
描述 |
GEOMETRY |
地理信息系统(GIS)数据类型(依赖插件) |
TSVECTOR, TSQUERY |
用于全文检索 |
ENUM |
枚举类型(需要自定义) |
HLL |
HyperLogLog 数据类型(用于近似统计) |
📌 示例:字段定义
CREATE TABLE example (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
birth_date DATE,
is_active BOOLEAN DEFAULT TRUE,
profile JSONB,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);
如果你需要我帮你设计某张表的字段类型,可以把字段名和功能描述告诉我,我可以为你选择合适的数据类型并生成 SQL 语句。需要吗?