PostgreSQL имеет богатый список доступных пользователю встроенных типов. Кроме того, с помощью команды CREATE TYPE пользователи могут добавлять новые типы данных.
Table 8-1 показывает все встроенные типы данных общего назначения. Большая часть альтернативных имён, перечисленных в колонке "Псевдонимы", используется в PostgreSQL по историческим причинам. Кроме того, доступны, но не указаны, некоторые типы данных, которые используются для внутренних нужд PostgreSQL или которые устарели.
Table 8-1. Типы данных
Имя | Псевдонимы | Описание |
---|---|---|
bigint | int8 | знаковое восьмибайтное целое число |
bigserial | serial8 | восьмибайтное целое число с автоинкрементом |
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 | знаковое четырёхбайтовое целое |
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 | знаковое двухбайтное целое число |
serial | serial4 | четырёхбайтное целое число с автоинкрементом |
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 |
Совместимость: Следующие типы (или вытекающие из них) определяются SQL: bigint, bit, bit varying, boolean, char, character varying, character, varchar, date, double precision, integer, interval, numeric, decimal, real, smallint, time (с или без часового пояса), timestamp (с или без часового пояса), xml.
Каждый тип данных имеет внешнее представление, определяемое с помощью функций ввода и вывода. Многие из встроенных типов имеют понятные внешние форматы. Однако, некоторые типы являются либо уникальными в PostgreSQL, такие как геометрические, либо имеют несколько возможных форматов, такие как типы даты и времени. Некоторые функции ввода и вывода являются неинвертирумыми. Например, к ним относятся такие функции, результат вывода которых может привести к потере точности по сравнению с введённым первоначальным значением.