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.5. Типы дата/времени
8.5.1. Ввод даты/времени
8.5.2. Вывод даты/времени
8.5.3. Часовые пояса
8.5.4. Ввод значений интервала
8.5.5. Вывод значений интервала
8.5.6. Некоторые подробности по датам
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.10. Типы битовых строк
8.11. Типы текстового поиска
8.11.1. tsvector
8.11.2. tsquery
8.12. Тип UUID
8.13. Тип XML
8.13.1. Создание значений XML
8.13.2. Управление кодировкой
8.13.3. Доступ к значениям XML
8.14. Arrays
8.14.1. Declaration of Array Types
8.14.2. Array Value Input
8.14.3. Accessing Arrays
8.14.4. Modifying Arrays
8.14.5. Searching in Arrays
8.14.6. Array Input and Output Syntax
8.15. Composite Types
8.15.1. Declaration of Composite Types
8.15.2. Composite Value Input
8.15.3. Accessing Composite Types
8.15.4. Modifying Composite Types
8.15.5. Composite Type Input and Output Syntax
8.16. Типы идентификаторов объектов
8.17. Псевдо-типы

PostgreSQL имеет богатый список доступных пользователю встроенных типов. Кроме того, с помощью команды CREATE TYPE пользователи могут добавлять новые типы данных.

Table 8-1 показывает все встроенные типы данных общего назначения. Большая часть альтернативных имён, перечисленных в колонке "Псевдонимы", используется в PostgreSQL по историческим причинам. Кроме того, доступны, но не указаны, некоторые типы данных, которые используются для внутренних нужд PostgreSQL или которые устарели.

Table 8-1. Типы данных

ИмяПсевдонимыОписание
bigintint8знаковое восьмибайтное целое число
bigserialserial8восьмибайтное целое число с автоинкрементом
bit [ (n) ] битовая строка с фиксированной длиной
bit varying [ (n) ]varbitбитовая строка с переменной длиной
booleanboolлогическое значение (истина/ложь)
box четырёхугольник на плоскости
bytea двоичные данные ("массив байт")
character varying [ (n) ]varchar [ (n) ]строка с переменной длиной
character [ (n) ]char [ (n) ]строка с фиксированной длиной
cidr адрес сети IPv4 или IPv6
circle круг на плоскости
date календарная дата (год, месяц, день)
double precisionfloat8число с плавающей точкой двойной точности (8 байт)
inet адрес узла IPv4 или IPv6
integerint, int4знаковое четырёхбайтовое целое
interval [ fields ] [ (p) ] промежуток времени
line бесконечная линия на плоскости
lseg сегмент линии на плоскости
macaddr MAC (Media Access Control) адрес
money денежное значение (в валюте)
numeric [ (p, s) ]decimal [ (p, s) ]точное числовое значение с выбраной точностью
path геометрический путь на плоскости (ломаная)
point геометрическая точка на плоскости
polygon закрытый геометрический путь на плоскости (полигон)
realfloat4число с плавающей точкой одинарной точности (4 байта)
smallintint2знаковое двухбайтное целое число
serialserial4четырёхбайтное целое число с автоинкрементом
text строка символов перменной длины
time [ (p) ] [ without time zone ] время дня (без часового пояса)
time [ (p) ] with time zonetimetzвремя дня, включая часовой пояс
timestamp [ (p) ] [ without time zone ] дата и время (без часового пояса)
timestamp [ (p) ] with time zonetimestamptzдата и время, включая часовой пояс
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, такие как геометрические, либо имеют несколько возможных форматов, такие как типы даты и времени. Некоторые функции ввода и вывода являются неинвертирумыми. Например, к ним относятся такие функции, результат вывода которых может привести к потере точности по сравнению с введённым первоначальным значением.