Глава 8. Типы данных#

Глава 8. Типы данных

Глава 8. Типы данных

Оглавление

8.1. Числовые типы
8.1.1. Типы целых чисел
8.1.2. Произвольная точность чисел
8.1.3. Типы с плавающей точкой
8.1.4. Типы серий
8.2. Типы денежных единиц
8.3. Типы символов
8.4. Бинарные типы данных
8.4.1. bytea Формат в шестнадцатеричной системе
8.4.2. bytea Формат экранирования
8.5. Типы даты/времени
8.5.1. Ввод даты/времени
8.5.2. Вывод даты/времени
8.5.3. Часовые пояса
8.5.4. Ввод интервала
8.5.5. Вывод интервала
8.6. Тип Boolean
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.8.7. Круги
8.9. Типы сетевых адресов
8.9.1. inet
8.9.2. cidr
8.9.3. inet vs. cidr
8.9.4. macaddr
8.9.5. macaddr8
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. Типы JSON
8.14.1. Синтаксис ввода и вывода JSON
8.14.2. Проектирование JSON-документов
8.14.3. jsonb Содержание и существование
8.14.4. jsonb Индексирование
8.14.5. jsonb Подсказка
8.14.6. Преобразования
8.14.7. jsonpath Тип
8.15. Массивы
8.15.1. Объявление типов массивов
8.15.2. Ввод значений массива
8.15.3. Доступ к массивам
8.15.4. Изменение массивов
8.15.5. Поиск в массивах
8.15.6. Синтаксис ввода и вывода массивов
8.16. Составные типы
8.16.1. Объявление составных типов
8.16.2. Создание составных значений
8.16.3. Доступ к составным типам
8.16.4. Изменение составных типов
8.16.5. Использование составных типов в запросах
8.16.6. Синтаксис ввода и вывода составного типа
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.18. Типы доменов
8.19. Типы идентификаторов объектов
8.20. Тип pg_lsn
8.21. Псевдо-типы

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

Таблица 8.1 показывает все встроенные общие типы данных. Большинство альтернативных имен, перечисленных в столбце Псевдонимы, являются именами, используемыми внутренне Tantor SE по историческим причинам. Кроме того, некоторые внутренне используемые или устаревшие типы доступны, но здесь не перечислены.

Таблица 8.1. Типы данных

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

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