1. 数值类型(Numeric Types)
- SMALLINT / INT2:2 字节有符号整数,范围 -32768 到 +32767。
- INTEGER / INT / INT4:4 字节有符号整数,范围 -2147483648 到 +2147483647。
- BIGINT / INT8:8 字节有符号整数。
- DECIMAL(p,s) / NUMERIC(p,s):任意精度的定点数,p 为精度,s 为小数位数。
- REAL / FLOAT4:4 字节浮点数。
- DOUBLE PRECISION / FLOAT8:8 字节浮点数。
- SERIAL、BIGSERIAL:自增整数类型(用于主键等)。
2. 字符类型(Character Types)
- CHAR(n) / CHARACTER(n):定长字符串,不足补空格。
- VARCHAR(n) / CHARACTER VARYING(n):变长字符串,最大长度 n。可变(最大1GB)
- TEXT:不限长度的变长字符串。
- VARCHAR2(n) 可变(最大1GB)
- CLOB 1GB-8203B
- BYTEA 可变 二进制数据存储,文件内容、图像存储
3. 日期/时间类型(Date/Time Types)
- DATE:日期(年-月-日)。
- TIME [WITHOUT TIME ZONE]:一天中的时间(时:分:秒[.微秒])。
- TIME WITH TIME ZONE / TIMETZ:带时区的时间。
- TIMESTAMP [WITHOUT TIME ZONE]:日期和时间。
- TIMESTAMP WITH TIME ZONE / TIMESTAMPTZ:带时区的日期时间。
- INTERVAL:时间间隔(如 '1 day 2 hours')。
注意: 使用TIMESTAMP WITH TIME ZONE存储跨时区业务数据,系统会自动处理时区转换。
4. 布尔类型(Boolean Type)
- BOOLEAN / BOOL:取值为 TRUE、FALSE 或 NULL。
5. 几何类型(Geometric Types)(部分支持)
- POINT、LINE、LSEG、BOX、PATH、POLYGON、CIRCLE 等(与 PostgreSQL 兼容)。
6. 网络地址类型(Network Address Types)
- INET:IPv4 或 IPv6 主机/网络地址。
- CIDR:网络地址表示法。
- MACADDR:MAC 地址。
7. JSON 类型
JSON:存储原始 JSON 文本。
JSONB:二进制格式的 JSON,支持索引和高效查询(GaussDB 高版本支持)
8. 二进制数据类型
- BYTEA:用于存储二进制大对象(如图片、文件等)。
9. 数组类型(Array Types)
- 支持任意基本类型的数组,例如:INT[]、TEXT[][](多维数组)。
10. 复合类型(Composite Types)
- 用户可自定义结构体类型,类似 C 的 struct。
11. 大对象类型(Large Object, LOB)
- 通过 OID 引用存储在系统表 pg_largeobject 中的大对象(通常用于 >1GB 数据)。
12. 其他特殊类型
- UUID:通用唯一标识符。
- TSVECTOR / TSQUERY:全文检索专用类型(部分版本支持)。
- OID:对象标识符(内部使用)。
⚠️ 注意:
GaussDB 有多个产品线,如:
GaussDB(for openGauss):开源生态,高度兼容 PostgreSQL。
GaussDB(DWS):数据仓库服务,面向 OLAP,语法更偏向分析场景。
GaussDB(for MySQL):兼容 MySQL 语法。
不同版本支持的数据类型略有差异。建议根据你使用的具体 GaussDB 版本查阅官方文档。