Типы данных

Содержание

В 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
moneyденежная сумма
mvarchar [ (n) ]символьная строка переменной длины, совместимая с Microsoft SQL Server
numeric [ (*p, s) ]decimal [ (p, s) ]точное числовое выбираемой точности
pathгеометрический путь в плоскости
pg_lsnрегистрационный номер транзакции в журнале (LSN) QHB
pg_snapshotснимок идентификатора транзакции на уровне пользователя
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снимок идентификатора транзакции на уровне пользователя (устаревший; см. pg_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, как например геометрические типы, или имеют несколько возможных форматов, как например, типы даты и времени. Некоторые из функций ввода и вывода не являются обратными друг другу, т. е. результат функции вывода может потерять точность и не совпадать с исходным входным значением.