PostgreSQL 支持非常丰富的数据类型,这也是它作为一个企业级数据库系统最受欢迎的特点之一。下面我会列出一些主要的数据类型,并举例说明它们的使用场景。
数值类型
-
整数类型:
SMALLINT
:用于存储较小的整数,范围从 -32768 到 32767。INTEGER
:用于存储常规大小的整数,范围从 -2147483648 到 2147483647。例如,用户的年龄或者某个计数器。BIGINT
:用于存储大整数,范围从 -9223372036854775808 到 9223372036854775807。适合大数据量统计,如社交媒体平台的用户数。SERIAL
:自增整数,常用于自动创建唯一的表行标识。
-
精确数值类型:
NUMERIC
和DECIMAL
:这两种类型用于存储精确的数值,可以指定精度(总位数)和标度(小数点后的位数)。例如,金融交易中的金额计算。
-
浮点类型:
REAL
和DOUBLE PRECISION
:用于存储浮点数,REAL
是单精度,而DOUBLE PRECISION
是双精度。用于需要近似值的科学计算。
文本类型
CHAR(n)
:固定长度字符串。如果字符串长度小于 n,则使用空格填充。VARCHAR(n)
:可变长度字符串,最多可以存储 n 个字符。适用于存储可能变化的数据,如用户名称。TEXT
:可变长度字符串,无长度限制。适合存储大量文本,如文章内容或用户评论。
日期和时间类型
DATE
:仅存储日期。TIME
:仅存储时间。TIMESTAMP
:存储日期和时间。常用于记录事件发生的具体时间,如日志记录。INTERVAL
:存储时间间隔。
布尔类型
BOOLEAN
:存储真 (TRUE
) 或假 (FALSE
)。例如,用户的订阅状态或是/否选项。
枚举类型
ENUM
:自定义类型,用来限定某个字段的可能值。例如,可以创建一个名为mood
的ENUM
类型,包括happy
,sad
,neutral
等选项。
JSON 类型
JSON
和JSONB
:用于存储 JSON 数据。JSONB
是二进制格式,存取速度更快,支持索引。
数组类型
- PostgreSQL 支持数组数据类型,可以存储基本数据类型的数组,如整数数组、文本数组等。
网络地址类型
- 存储 IP 地址和 MAC 地址等网络相关的数据。
几何和地理空间数据类型
- 如
POINT
,LINE
,CIRCLE
等,用于存储和查询地理空间数据。
以上各种数据类型的支持使得 PostgreSQL 非常适合处理多样化的数据需求,从传统的业务数据到现代的 JSON 文档和地理空间数据都能高效管理。
2024年7月24日 17:27 回复