Postgresql 中文操作指南

Chapter 8. Data Types

Table of Contents

PostgreSQL 具有提供给用户的各种本机数据类型。用户可以使用 CREATE TYPE 命令向 PostgreSQL 中添加新类型。

Table 8.1 显示所有内置的通用数据类型。“别名”列中列出的大多数其他名称都是 PostgreSQL 出于历史原因在内部使用的名称。此外,还有一些内部使用或已弃用的类型可用,但此处未列出。

Table 8.1. Data Types

Name

Aliases

Description

bigint

int8

signed eight-byte integer

bigserial

serial8

autoincrementing eight-byte integer

bit [ (_n) ]_

fixed-length bit string

bit varying [ (_n ) ]_

varbit [ (_n) ]_

variable-length bit string

boolean

bool

logical Boolean (true/false)

box

平面上的矩形框

bytea

binary data (“byte array”)

character [ (_n) ]_

char [ (_n) ]_

fixed-length character string

character varying [ (_n ) ]_

varchar [ (_n) ]_

variable-length character string

cidr

IPv4或IPv6网络地址

circle

circle on a plane

date

日历日期(年、月、日)

double precision

float8

双精度浮点数(8字节)

inet

IPv4或IPv6主机地址

integer

int, int4

signed four-byte integer

interval [ _fields ] [ ( p ) ]_

time span

json

textual JSON data

jsonb

binary JSON data, decomposed

line

平面上的无穷直线

lseg

平面上的线段

macaddr

MAC(媒体访问控制)地址

macaddr8

MAC(媒体访问控制)地址(EUI-64格式)

money

currency amount

numeric [ (_p , s ) ]_

decimal [ (_p , s ) ]_

可选择精度的精确数值

path

平面几何路径

pg_lsn

PostgreSQL Log Sequence Number

pg_snapshot

user-level transaction ID snapshot

point

平面几何点

polygon

平面封闭几何路径

real

float4

单精度浮点数(4字节)

smallint

int2

signed two-byte integer

smallserial

serial2

autoincrementing two-byte integer

serial

serial4

autoincrementing four-byte integer

text

variable-length character string

time [ (_p ) ] [ without time zone ]_

一天中的时间(无时区)

time [ (_p ) ] with time zone_

timetz

时间,包括时区

timestamp [ (_p ) ] [ without time zone ]_

日期和时间(无时区)

timestamp [ (_p ) ] with time zone_

timestamptz

日期和时间,包括时区

tsquery

text search query

tsvector

text search document

txid_snapshot

用户级别事务 ID 快照(弃用;参见 pg_snapshot

uuid

universally unique identifier

xml

XML data

Compatibility

SQL 指定了以下类型(或其拼写): bigintbitbit varyingbooleancharcharacter varyingcharactervarchardatedouble precisionintegerintervalnumericdecimalrealsmallinttime (带时区或不带时区)、 timestamp (带时区或不带时区)、 xml

每个数据类型都有由其输入和输出函数确定的外部表示。许多内置类型具有明显的外部格式。然而,有些类型要么是 PostgreSQL 独有的,例如几何路径,要么有几种可能的格式,例如日期和时间类型。部分输入和输出函数无法反转,即与原始输入相比,输出函数的结果可能会丢失精度。