Chapter 8. 数据类型
Table of Contents
- 8.1. 数值类型
- 8.1.1. 整数类型
- 8.1.2. 任意精度数值
- 8.1.3. 浮点数类型
- 8.1.4. 序列号类型
- 8.2. 货币类型
- 8.3. 字符类型
- 8.4. 二进制数据类型
- 8.4.1.
bytea
十六进制格式 - 8.4.2.
bytea
逃逸格式
- 8.4.1.
- 8.5. 日期/时间类型
- 8.5.1. 日期/时间输入
- 8.5.2. 日期/时间输出
- 8.5.3. 时区
- 8.5.4. 间隔输入
- 8.5.5. 间隔输出
- 8.6. 布尔类型
- 8.7. 枚举类型
- 8.7.1. 枚举类型的声明
- 8.7.2. 排序
- 8.7.3. 类型安全
- 8.7.4. 实施细则
- 8.8. 几何类型
- 8.8.1. 点
- 8.8.2. 线段
- 8.8.3. 矩形
- 8.8.4. 路径
- 8.8.5. 多边形
- 8.8.6. 圆
- 8.9. 网络地址类型
- 8.9.1.
inet
- 8.9.2.
cidr
- 8.9.3.
inet
对比cidr
- 8.9.4.
macaddr
- 8.9.1.
- 8.10. 位串类型
- 8.11. 文本搜索类型
- 8.11.1.
tsvector
- 8.11.2.
tsquery
- 8.11.1.
- 8.12. UUID 类型
- 8.13. XML 类型
- 8.13.1. 创建XML值
- 8.13.2. 编码处理
- 8.13.3. 访问XML值
- 8.14. JSON 类型
- 8.15. Arrays
- 8.15.1. 数组类型的声明
- 8.15.2. 数组值输入
- 8.15.3. 访问数组
- 8.15.4. 修改数组
- 8.15.5. 在数组中检索
- 8.15.6. 数组输入和输出语法
- 8.16. 复合类型
- 8.16.1. 声明复合类型
- 8.16.2. 复合类型值输入
- 8.16.3. 访问复合类型
- 8.16.4. 修改复合类型
- 8.16.5. 复合类型输入和输出语法
- 8.17. 范围类型
- 8.17.1. 内嵌范围类型
- 8.17.2. 范例
- 8.17.3. 包含及不包含边界
- 8.17.4. 无限(无边界)范围
- 8.17.5. 范围输入/输出
- 8.17.6. 构造范围
- 8.17.7. 离散范围类型
- 8.17.8. 定义新的范围类型
- 8.17.9. 索引
- 8.17.10. 范围上的约束
- 8.18. 对象标识符类型
- 8.19. 伪类型
PostgreSQL有着丰富的内置数据类型可用。 用户还可以使用CREATE TYPE命令增加新的数据类型。
Table 8-1显示了所有内置的普通数据类型。 在"别名"列里列出的大多数可选名字都是因历史原因PostgreSQL 在内部使用的名字。另外,还有一些内部使用的或者废弃的类型也可以使用, 但没有在这里列出。
Table 8-1. 数据类型
名字 | 别名 | 描述 |
---|---|---|
bigint |
int8 |
有符号8字节整数 |
bigserial |
serial8 |
自增8字节整数 |
bit [ (``_n_ ) ] |
定长位串 | |
bit varying [ (``_n_ ) ] |
varbit |
变长位串 |
boolean |
bool |
逻辑布尔值(真/假) |
box |
平面上的矩形 | |
bytea |
二进制数据("字节数组") | |
character varying [ (``_n_ ) ] |
varchar [ (``_n_ ) ] |
变长字符串 |
character [ (``_n_ ) ] |
char [ (``_n_ ) ] |
定长字符串 |
cidr |
IPv4 或 IPv6 网络地址 | |
circle |
平面上的圆 | |
date |
日历日期(年, 月, 日) | |
double precision |
float8 |
双精度浮点数字(8字节) |
inet |
IPv4 或 IPv6 主机地址 | |
integer |
int , int4 |
有符号 4 字节整数 |
interval [ _fields_ ] [ (_p_ ) ] |
时间间隔 | |
line |
平面上的无限长直线 | |
lseg |
平面上的线段 | |
macaddr |
MAC (Media Access Control)地址 | |
money |
货币金额 | |
numeric [ (``_p_ , _s_ ) ] |
decimal [ (``_p_ , _s_ ) ] |
可选精度的准确数字 |
path |
平面上的几何路径 | |
point |
平面上的点 | |
polygon |
平面上的封闭几何路径 | |
real |
float4 |
单精度浮点数(4 字节) |
smallint |
int2 |
有符号 2 字节整数 |
smallserial |
serial2 |
自增 2 字节整数 |
serial |
serial4 |
自增 4 字节整数 |
text |
变长字符串 | |
time [ (``_p_ ) ] [ without time zone ] |
一天中的时间(无时区) | |
time [ (``_p_ ) ] with time zone |
timetz |
一天里的时间,包括时区 |
timestamp [ (``_p_ ) ] [ without time zone ] |
日期和时间(无时区) | |
timestamp [ (``_p_ ) ] with time zone |
timestamptz |
日期和时间,包括时区 |
tsquery |
文本检索查询 | |
tsvector |
文本检索文档 | |
txid_snapshot |
用户级别的事务ID快照 | |
uuid |
通用唯一标识符 | |
xml |
XML 数据 | |
json |
JSON 数据 |
兼容性: 下列类型(或者那样拼写的)是SQL声明的:
bigint
,bit
,bit varying
,boolean
,char
,character varying
,character
,varchar
,date
,double precision
,integer
,interval
,numeric
,decimal
,real
,smallint
,time
(有时区和无时区),timestamp
(有时区和无时区),xml
。
每种数据类型都有一个由其输入和输出函数决定的外部表现形式。 许多内建的类型有明显的格式。不过,许多类型要么是PostgreSQL 所特有的,比如几何路径,要么是有几种不同的格式,比如日期和时间类型。 有些输入和输出函数是不可逆的。也就是说, 输出函数的输出结果和原始的输入比较的时候可能丢失精度。