PostgreSQL 本身并不直接支持 C++ 数据类型,因为 PostgreSQL 是一个关系型数据库管理系统,而 C++ 是一种面向对象的编程语言
-
数值类型:
- 数值(numeric):任意精度的有符号十进制数。
- 整数(integer):任意精度的有符号整数。
- 小数(smallint):16 位有符号整数。
- 大数(bigint):64 位有符号整数。
- 二进制整数(bit):任意精度的二进制整数。
- 二进制小数(bit varying):任意精度的二进制小数。
- 数值(real):32 位浮点数。
- 双精度(double precision):64 位浮点数。
- 精确数值(serial):自增的整数。
- 有符号十进制(smallserial):自增的小数。
- 有符号二进制(bigserial):自增的二进制整数。
- 有符号二进制小数(bigdecimal):自增的二进制小数。
-
日期和时间类型:
- 日期(date):年、月、日。
- 时间(time):时、分、秒。
- 时间戳(timestamp):日期和时间。
- 时区时间戳(timestamptz):带有时区的时间戳。
- 日期时间(datetime):日期和时间。
- 周期(interval):时间间隔。
- 时间戳毫秒(timestamptz毫秒):带有时区的时间戳,精度到毫秒。
-
字符串类型:
- 字符串(char):固定长度的字符串。
- 文本(text):可变长度的字符串。
- 字符串(varchar):可变长度的字符串,最大长度可达 1GB。
- 字符串(cstring):C 语言风格的字符串。
- 字符串(name):固定长度的字符串,最大长度为 63 个字符。
- 字符串(bpchar):固定长度的字符串,最大长度为 191 个字符。
-
二进制类型:
- 二进制数据(bytea):可变长度的二进制数据。
- 二进制数组(bytea[]):二进制数据的数组。
- 二进制对象(hstore):键值对的集合。
- JSONB:用于存储 JSON 数据的变长类型。
- XML:用于存储 XML 数据的变长类型。
-
布尔类型:
- 布尔值(boolean):真(true)或假(false)。
-
数组类型:
- 数组(array):固定长度的数组。
- 多维数组(array[]):数组的数组。
- 多维数组(array[n]):固定长度的多维数组。
-
枚举类型:
-
集合类型:
- 集合(set):无序且不重复的值集合。
- 幂集(hyperset):无序且不重复的值的集合的集合。
-
JSON 和 XML 类型:
- JSON(json):用于存储 JSON 数据的变长类型。
- XML(xml):用于存储 XML 数据的变长类型。
-
空间类型:
- 空间数据(geometry):几何对象。
- 空间参考系统(spatial reference system):空间坐标系。
- 空间索引(spatial index):用于加速空间查询的索引。
-
其他类型:
- IP 地址(ip):IPv4 或 IPv6 地址。
- UUID:通用唯一标识符。
- UUID 对象(uuid):UUID 的数组。
- JSONB 对象(jsonb object):JSON 对象的数组。
- JSONB 数组(jsonb array):JSON 数组的数组。
- XML 对象(xml object):XML 对象的数组。
- XML 数组(xml array):XML 数组的数组。
- 位串(bit string):任意精度的二进制位串。
- 二进制大型对象(blob):可变长度的二进制数据。
- 字符大型对象(clob):可变长度的字符数据。
- 行类型(row type):记录的结构体。
要在 C++ 中与 PostgreSQL 交互,您可以使用 libpqxx 库,它是一个 C++ 适配器,用于连接和操作 PostgreSQL 数据库。