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.6. Логический тип
8.7. Геометрические типы
8.7.1. Точки
8.7.2. Сегменты линий
8.7.3. Боксы
8.7.4. Пути
8.7.5. Полигоны
8.7.6. Круги
8.8. Типы сетевых адресов
8.8.1. inet
8.8.2. cidr
8.8.3. Сравнение типов inet и cidr
8.8.4. macaddr
8.9. Типы битовых строк
8.10. Arrays
8.10.1. Declaration of Array Types
8.10.2. Array Value Input
8.10.3. Accessing Arrays
8.10.4. Modifying Arrays
8.10.5. Searching in Arrays
8.10.6. Array Input and Output Syntax
8.11. Composite Types
8.11.1. Declaration of Composite Types
8.11.2. Composite Value Input
8.11.3. Accessing Composite Types
8.11.4. Modifying Composite Types
8.11.5. Composite Type Input and Output Syntax
8.12. Типы идентификаторов объектов
8.13. Псевдо-типы

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число с плавающей точкой двойной точности
inet адрес узла IPv4 или IPv6
integerint, int4знаковое четырёхбайтовое целое
interval [ (p) ] промежуток времени
line бесконечная линия на плоскости
lseg сегмент линии на плоскости
macaddr MAC адрес
money денежное значение (в валюте)
numeric [ (p, s) ]decimal [ (p, s) ]точное числовое значение с выбраной точностью
path геометрический путь на плоскости (ломаная)
point геометрическая точка на плоскости
polygon закрытый геометрический путь на плоскости (полигон)
realfloat4число с плавающей точкой одинарной точности
smallintint2знаковое двухбайтное целое число
serialserial4четырёхбайтное целое число с автоинкрементом
text строка символов перменной длины
time [ (p) ] [ without time zone ] время дня
time [ (p) ] with time zonetimetzвремя дня, включа временную зону
timestamp [ (p) ] [ without time zone ] дата и время
timestamp [ (p) ] with time zonetimestamptzдата и время, включая временную зону

Совместимость: Следующие типы (или вытекающие из них) определяются SQL: bit, bit varying, boolean, char, character varying, character, varchar, date, double precision, integer, interval, numeric, decimal, real, smallint, time (с или без временной зоны), timestamp (с или без временной зоны).

Каждый тип данных имеет внешнее представление, определяемое с помощью функций ввода и вывода. Многие из встроенных типов имеют понятные внешние форматы. Однако, некоторые типы являются либо уникальными в PostgreSQL, такие как геометрические, либо имеют несколько возможных форматов, такие как типы даты и времени. Некоторые функции ввода и вывода являются неинвертирумыми. К ним относятся такие функции, результат вывода которых может привести к потере точности по сравнению с введённым первоначальным значением.