Типы данных

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

В таблице 1 показаны все встроенные типы данных общего назначения. Большинство альтернативных имен, перечисленных в столбце «Псевдонимы», являются именами, используемыми внутри QHB по историческим причинам. Кроме того, доступны некоторые используемые или устаревшие типы, но они не перечислены здесь.

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

ИмяПсевдонимыОписание
bigintint8восьмибайтное целое со знаком
bigserialserial8автоинкрементное восьмибайтное целое число
bit [ (n) ]битовая строка фиксированной длины
bit varying [ (n) ]varbit [ (n) ]битовая строка переменной длины
booleanboolлогическое значение (true/false)
boxпрямоугольник в плоскости
byteaдвоичные данные («байтовый массив»)
character [ (n) ]char [ (n) ]символьная строка фиксированной длины
character varying [ (n) ]varchar [ (n) ]символьная строка переменной длины
cidrсетевой адрес IPv4 или IPv6
circleкруг в плоскости
dateкалендарная дата (год, месяц, день)
double precisionfloat8число с плавающей запятой двойной точности (8 байт)
inetадрес хоста IPv4 или IPv6
integerint, int4четырехбайтное целое со знаком
interval [ поля ] [ (p) ]временной интервал
jsonтекстовые данные JSON
jsonbдвоичные данные JSON, разложенные
lineбесконечная линия в плоскости
lsegотрезок в плоскости
macaddrMAC (Media Access Control) адрес
macaddr8MAC (Media Access Control) адрес (в формате EUI-64)
mchar [ (n) ]символьная строка фиксированной длины, совместимая с Microsoft SQL Server
mvarchar [ (n) ]символьная строка переменной длины, совместимая с Microsoft SQL Server
moneyденежная сумма
numeric [ (*p, s) ]decimal [ (p, s) ]точное числовое выбираемой точности
pathгеометрический путь в плоскости
pg_lsnрегистрационный номер транзакции в журнале (LSN) QHB
pointгеометрическая точка в плоскости
polygonзамкнутый геометрический путь в плоскости
realfloat4число одинарной точности с плавающей запятой (4 байта)
smallintint2двухбайтное целое со знаком
smallserialserial2двухбайтное целое число с автоприращением
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снимок идентификатора транзакции на уровне пользователя
uuidуниверсально уникальный идентификатор
xmlXML-данные

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

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