PostgreSQL数据库支持多种数据类型,以下是一些常见的数据类型:
-
数值类型:
- 整数类型:smallint, integer, bigint
- 浮点类型:real, double precision, numeric(可以指定精度和数值范围)
- 定点类型:decimal(p, s)(可以指定总位数和小数位数)
- 二进制整数类型:bit(n)(n为位数)
- 二进制浮点类型:bit varying(n)(n为最大位数)
- 数值类型别名:integer(p)表示一个固定长度的整数,其范围由p决定;numeric(p, s)表示一个任意精度的有符号十进制数,其范围由p和s决定。
-
字符串类型:
- 普通字符串类型:char(n)(n为字符数,固定长度)
- 变长字符串类型:varchar(n)(n为最大字符数)
- 文本类型:text(无长度限制)
- 字符串类型别名:char(p)表示一个固定长度的字符串,其长度由p决定;varchar(p)表示一个最大长度为p的字符串;text表示无长度限制的字符串。
-
日期和时间类型:
- 日期类型:date(年-月-日)
- 时间类型:time(时:分:秒)
- 时间戳类型:timestamp(年-月-日 时:分:秒)
- 时间间隔类型:interval(表示时间差,如1天、2小时30分钟等)
- 日期时间类型:timestamp with time zone(带时区的时间戳)
- 日期类型别名:date表示一个日期值;time表示一个时间值;timestamp表示一个日期时间值;interval表示一个时间间隔值。
-
布尔类型:
-
二进制数据类型:
- 二进制整数类型:bytea(表示一个字节序列)
- 二进制字符串类型:varchar(n) binary(表示一个最大长度为n的字节序列)
-
其他数据类型:
- 枚举类型:enum(定义一组有限的值,如status ‘active’, ‘inactive’)
- 数组类型:array(表示一个值的数组,如integer[]、varchar[]等)
- JSON类型:json(表示JSON数据)
- JSONB类型:jsonb(表示二进制格式的JSON数据,对性能优化更好)
- UUID类型:uuid(表示通用唯一标识符)
- 空间数据类型:如point(二维空间点)、line(线段)、polygon(多边形)等(需要安装PostGIS扩展)
- XML类型:xml(表示XML数据)
- 几何类型:如circle(圆)、box(矩形)、path(路径)等(需要安装PostGIS扩展)
这些数据类型可以满足大多数应用程序的需求。在实际应用中,可以根据需要选择合适的数据类型来存储和操作数据。