Глава 8. Типы данных
Содержание
- 8.1. Числовые типы
- 8.2. Денежные типы- 8.3. Символьные типы
- 8.4. Двоичные типы данных
- 8.3. Символьные типы
- 8.5. Типы даты/времени
- 8.6. Логический тип- 8.7. Типы перечислений
- 8.8. Геометрические типы
- 8.9. Типы, описывающие сетевые адреса
- 8.10. Битовые строки- 8.11. Типы, предназначенные для текстового поиска
- 8.12. Тип UUID- 8.13. Тип XML
- 8.14. Типы JSON
- 8.15. Массивы
- 8.16. Составные типы
- 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.17.2. Примеры
 
- 8.17.1. Встроенные диапазонные типы
- 8.18. Типы доменов- 8.19. Идентификаторы объектов
- 8.20. Тип pg_lsn
- 8.21. Псевдотипы
- 8.19. Идентификаторы объектов
Postgres Pro предоставляет пользователям богатый ассортимент встроенных типов данных. Кроме того, пользователи могут создавать свои типы в Postgres Pro, используя команду CREATE TYPE.
Таблица 8.1 содержит все встроенные типы данных общего пользования. Многие из альтернативных имён, приведённых в столбце «Псевдонимы», используются внутри Postgres Pro по историческим причинам. В этот список не включены некоторые устаревшие типы и типы для внутреннего применения.
Таблица 8.1. Типы данных
| Имя | Псевдонимы | Описание | 
|---|---|---|
| bigint | int8 | знаковое целое из 8 байт | 
| bigserial | serial8 | восьмибайтное целое с автоувеличением | 
| bit [ ( | битовая строка фиксированной длины | |
| bit varying [ ( | varbit [ ( | битовая строка переменной длины | 
| boolean | bool | логическое значение (true/false) | 
| box | прямоугольник в плоскости | |
| bytea | двоичные данные («массив байт») | |
| character [ ( | char [ ( | символьная строка фиксированной длины | 
| character varying [ ( | varchar [ ( | символьная строка переменной длины | 
| cidr | сетевой адрес IPv4 или IPv6 | |
| circle | круг в плоскости | |
| date | календарная дата (год, месяц, день) | |
| double precision | float8 | число двойной точности с плавающей точкой (8 байт) | 
| inet | адрес узла IPv4 или IPv6 | |
| integer | int,int4 | знаковое четырёхбайтное целое | 
| interval [  | интервал времени | |
| json | текстовые данные JSON | |
| jsonb | двоичные данные JSON, разобранные | |
| line | прямая в плоскости | |
| lseg | отрезок в плоскости | |
| macaddr | MAC-адрес | |
| macaddr8 | Адрес MAC (Media Access Control) (в формате EUI-64) | |
| money | денежная сумма | |
| numeric [ ( | decimal [ ( | вещественное число заданной точности | 
| path | геометрический путь в плоскости | |
| pg_lsn | Последовательный номер в журнале Postgres Pro | |
| point | геометрическая точка в плоскости | |
| polygon | замкнутый геометрический путь в плоскости | |
| real | float4 | число одинарной точности с плавающей точкой (4 байта) | 
| smallint | int2 | знаковое двухбайтное целое | 
| smallserial | serial2 | двухбайтное целое с автоувеличением | 
| serial | serial4 | четырёхбайтное целое с автоувеличением | 
| text | символьная строка переменной длины | |
| time [ ( | время суток (без часового пояса) | |
| time [ ( | timetz | время суток с учётом часового пояса | 
| timestamp [ ( | дата и время (без часового пояса) | |
| timestamp [ ( | timestamptz | дата и время с учётом часового пояса | 
| tsquery | запрос текстового поиска | |
| tsvector | документ для текстового поиска | |
| txid_snapshot | снимок идентификатора транзакций | |
| 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.
Каждый тип данных имеет внутреннее представление, скрытое функциями ввода и вывода. При этом многие встроенные типы стандартны и имеют очевидные внешние форматы. Однако есть типы, уникальные для Postgres Pro, например геометрические пути, и есть типы, которые могут иметь разные форматы, например, дата и время. Некоторые функции ввода и вывода не являются в точности обратными друг к другу, то есть результат функции вывода может не совпадать со входным значением из-за потери точности.

