FirebirdSQL logo

Типы данных используются в случае:

  • определения столбца в таблице базы данных в операторе CREATE TABLE или для его изменения с использованием ALTER TABLE;

  • при объявлении и редактировании домена оператором CREATE DOMAIN или ALTER DOMAIN;

  • при объявлении локальных переменных в PSQL-модулях и при указании аргументов хранимых процедур и функций;

  • при описании внешних функций (UDF – функций, определённых пользователем) для указания аргументов и возвращаемых значений;

  • при явном преобразовании типов данных в качестве аргумента для функции CAST.

Table 1. Обзор типов данных
Наименование Размер Точность и ограничения ^^ Описание

BIGINT

64 бита

от -263 до (263 - 1)

64 битное целое. Тип данных доступен только в 3 диалекте.

BINARY(n)

n байт

от 1 до 32 767 байт

Бинарный тип данных фиксированной длины. Является псевдонимом типа CHAR(n) CHARACTER SET OCTETS.Значения короче объявленной длины дополняются NUL (0x00) до объявленной длины.Если количество символов не указано, по умолчанию используется 1.

BLOB

Переменный

Размер сегмента BLOB ограничивается 64К. Максимальный размерполя BLOB 32 Гб. Для размера страницы 4096 максимальный размер BLOBполя несколько ниже 2 Гб.

Тип данных с динамически изменяемым размером для хранения больших данных, таких как графика, тексты,оцифрованные звуки. Для сегментированных BLOB базовой структурной единицей является сегмент.Подтип BLOB описывает содержимое.

BOOLEAN

1 байт

false, true, unknown

Логический тип данных.

CHAR(n), CHARACTER(n)

n символов.Размер в байтах зависит от кодировки и количества байт на символ.

от 1 до 32,767 байт

Символьный тип данных фиксированной длины. Значения короче объявленной длины дополняются пробелами(0x20) — или NUL (0x00) для набора символов OCTETS — до объявленной длины.Если количество символов не указано, то по умолчанию принимается 1.

DATE

4 байта

от 01.01.0001 до 31.12.9999

Только дата без временной части.

DECIMAL (precision, scale)

16, 32, 64 или 128 бит в зависимости от точности

precision = от 1 до 38, указывает, по меньшей мере, количество цифр для хранения;scale = от 0 до 38, задаёт количество знаков после десятичной точки.

Число с десятичной точкой, которое после десятичной точки имеет scale разрядов.scale должно быть меньше или равно precision.Пример: DECIMAL(10,3) содержит число точно в следующем формате: ppppppp.sss.

DECFLOAT(precision)

64 или 128 бит в зависимости от точности

precision = 16 или 34, количество значащих цифр (точность)

SQL:2016 совместимый тип данных точно хранящий десятичные числа с плавающей запятой, основанный на стандарте IEEE 754-2008.

DOUBLE PRECISION

64 бита

от 2.225 * 10-308 до 1.797 * 10308

IEEE двойной точности, 15 цифр, размер зависит от платформы.

FLOAT

32 бита

от 1.175 * 10-38 до 3.402 * 1038

IEEE одинарной точности, 7 цифр

FLOAT(precision)

32 или 64 бита в зависимости от точности

precision — точность в двоичных числах, может находиться в диапазоне от 1 до 53.

Если precision от 1 до 24 — 32-битное одинарной точности (синоним типа FLOAT).Если precision от 25 до 53 — 64-битное двойной точности (синоним типа DOUBLE PRECISION).

INTEGER, INT

32 бита

от -2147483648 до 2147483647

Знаковое целое

INT128

128 бит

от -2^127 до 2^128-1

128-битное целое.

NUMERIC (precision, scale)

16, 32, 64 или 128 бит в зависимости от точности

precision = от 1 до 38, указывает, по меньшей мере, количество цифр для хранения;scale = от 0 до 38, задаёт количество знаков после десятичной точки.

Число с десятичной точкой, которое после десятичной точки имеет scale разрядов.scale должно быть меньше или равно precision.Пример: NUMERIC(10,3) содержит число точно в следующем формате: ppppppp.sss.

REAL

32 бита

от 1.175 * 10-38 до 3.402 * 1038

Является синонимом типа FLOAT.

SMALLINT

16 бита

от -32,768 до 32,767

Короткое знаковое целое.

TIME [WITHOUT TIME ZONE]

4 байта

0:00 to 23:59:59.9999

Время дня без информации о часовом поясе

TIME WITH TIME ZONE

6 байт

0:00 to 23:59:59.9999

Время дня с информацией о часовом поясе

TIMESTAMP [WITHOUT TIME ZONE]

8 байт

от 01.01.0001 до 31.12.9999

Дата включающая время без информации о часовом поясе

TIMESTAMP WITH TIME ZONE

10 байт

от 01.01.0001 до 31.12.9999

Дата включающая время с информацией о часовом поясе

VARBINARY(n), BINARY VARYING(n)

n байт.

от 1 до 32,765 байт

Бинарный тип данных переменной длины. Является псевдонимом типа VARCHAR(n) CHARACTER SET OCTETS.

VARCHAR(n), CHAR VARYING(n), CHARACTER VARYING(n)

n символов.Размер в байтах зависит от кодировки и количества байт на символ.

от 1 до 32,765 байт

Размер символов в байтах с учётом их кодировки не может быть больше 32765.Для этого типа данных, в отличие от CHAR (где по умолчанию предполагается количество символов 1), количество символов n обязательно должно быть указано.

Note

Следует иметь в виду, что временной ряд из дат прошлых веков рассматривается без учёта реальных исторических фактов и так, как будто бы во всем этом диапазоне ВСЕГДА действовал только Григорианский календарь.

Целочисленные типы данных

Для целых чисел используют целочисленные типы данных SMALLINT, INTEGER, BIGINT (в 3 диалекте) и INT128.Firebird не поддерживает беззнаковый целочисленный тип данных.