Типы данных
Содержание
- Числовые типы
- Денежные типы
- Символьные типы
- Двоичные типы данных
- Типы даты/времени
- Логический тип
- Перечислимые типы
- Геометрические типы
- Типы сетевых адресов
- Типы битовых строк
- Типы текстового поиска
- Тип UUID
- Тип XML
- Типы JSON
- Массивы
- Составные типы
- Диапазонные типы
- Типы доменов
- Типы идентификаторов объектов
- Тип pg_lsn
- Псевдотипы
В QHB имеется богатый выбор собственных типов данных, доступных
пользователям. Пользователи могут добавлять в QHB новые типы с
помощью команды CREATE TYPE
.
В Таблице 1 перечислены все встроенные типы данных общего назначения. Большинство альтернативных имен, перечисленных в столбце «Псевдонимы», используются внутри QHB по историческим причинам. Кроме того, имеется несколько устаревших типов и типов для внутреннего пользования, но они здесь не приводятся.
Таблица 1. Типы данных
Имя | Псевдонимы | Описание |
---|---|---|
bigint | int8 | восьмибайтное целое со знаком |
bigserial | serial8 | автоинкрементное восьмибайтное целое число |
bit [ (n) ] | битовая строка фиксированной длины | |
bit varying [ (n) ] | varbit [ (n) ] | битовая строка переменной длины |
boolean | bool | логическое значение (true/false) |
box | прямоугольник в плоскости | |
bytea | двоичные данные («байтовый массив») | |
character [ (n) ] | char [ (n) ] | символьная строка фиксированной длины |
character varying [ (n) ] | varchar [ (n) ] | символьная строка переменной длины |
cidr | сетевой адрес IPv4 или IPv6 | |
circle | круг в плоскости | |
date | календарная дата (год, месяц, день) | |
double precision | float8 | число с плавающей запятой двойной точности (8 байт) |
inet | адрес хоста IPv4 или IPv6 | |
integer | int, int4 | четырехбайтное целое со знаком |
interval [ поля ] [ (p) ] | временной интервал | |
json | текстовые данные JSON | |
jsonb | двоичные данные JSON, разобранные | |
line | бесконечная линия в плоскости | |
lseg | отрезок в плоскости | |
macaddr | MAC (Media Access Control) адрес | |
macaddr8 | MAC (Media Access Control) адрес (в формате EUI-64) | |
mchar [ (n) ] | символьная строка фиксированной длины, совместимая с Microsoft SQL Server | |
money | денежная сумма | |
mvarchar [ (n) ] | символьная строка переменной длины, совместимая с Microsoft SQL Server | |
numeric [ (*p, s) ] | decimal [ (p, s) ] | точное числовое выбираемой точности |
path | геометрический путь в плоскости | |
pg_lsn | регистрационный номер транзакции в журнале (LSN) QHB | |
pg_snapshot | снимок идентификатора транзакции на уровне пользователя | |
point | геометрическая точка в плоскости | |
polygon | замкнутый геометрический путь в плоскости | |
real | float4 | число одинарной точности с плавающей запятой (4 байта) |
smallint | int2 | двухбайтное целое со знаком |
smallserial | serial2 | двухбайтное целое число с автоприращением |
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 | снимок идентификатора транзакции на уровне пользователя (устаревший; см. 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.
Каждый тип данных имеет внешнее представление, определяемое его функциями ввода и вывода. Многие из встроенных типов имеют очевидные внешние форматы. Однако некоторые типы являются уникальными для QHB, как например геометрические типы, или имеют несколько возможных форматов, как например, типы даты и времени. Некоторые из функций ввода и вывода не являются обратными друг другу, т. е. результат функции вывода может потерять точность и не совпадать с исходным входным значением.