FirebirdSQL logo
 Структура языка SQLОбщие элементы языка 

Шестнадцатеричный формат для целых чисел

Константы целочисленных типов можно указать в шестнадцатеричном формате.

Table 1. Константы целочисленных типов в шестнадцатеричном формате
Количество шестнадцатеричных цифр Тип данных

1-8

INTEGER

9-16

BIGINT

17-32

INT128

Запись SMALLINT в шестнадцатеричном представлении не поддерживается в явном виде, но Firebird будет прозрачно преобразовывать шестнадцатеричное число в SMALLINT, если это необходимо, при условии что оно попадает в допустимый диапазон положительных и отрицательных значений для SMALLINT.

Использование и диапазоны значений чисел шестнадцатеричной нотации более подробно описаны в ходе обсуждения числовых констант в главе под названием “Общие элементы языка”.

Example 1. Использование целых чисел заданных шестнадцатеричном виде
INSERT INTO MYBIGINTS VALUES (
  -236453287458723,
  328832607832,
  22,
  -56786237632476,
  0X6F55A09D42, -- 478177959234
  0X7FFFFFFFFFFFFFFF, -- 9223372036854775807
  0XFFFFFFFFFFFFFFFF, -- -1
  0X80000000, -- -2147483648, т.е. INTEGER
  0X080000000, -- 2147483648, т.е. BIGINT
  0XFFFFFFFF, -- -1, т.е. INTEGER
  0X0FFFFFFFF -- 4294967295, т.е. BIGINT
);

Шестнадцатеричный INTEGER автоматически приводится к типу BIGINT перед вставкой втаблицу. Однако это происходит после установки численного значения, так 0x80000000 (8 цифр)и 0x080000000 (9 цифр) будут сохранены в разных форматах. Значение 0x80000000 (8 цифр)будет сохранено в формате INTEGER, а 0x080000000 (9 цифр) как BIGINT.

Пользовательские типы данных — домены

Домены в СУБД Firebird реализуют широко известный по многим языкам программирования инструмент “типы данных, определённые пользователем”.Когда несколько таблиц в базе данных содержат поля с характеристиками одинаковыми или практически одинаковыми, то есть целесообразность сделать домен, в котором описать набор свойств поля и использовать такой набор свойств, описанный один раз, в нескольких объектах базы данных.Домены могут использоваться помимо описания полей таблиц и представлений (VIEW) и при объявлении входных и выходных параметров, а также при объявлении переменных в коде PSQL.

Атрибуты домена

Определение домена содержит обязательные и необязательные атрибуты.К обязательному атрибуту относится тип данных.К необязательным относятся:

  • значение по умолчанию;

  • возможности использования NULL для домена;

  • ограничения CHECK для данных домена;

  • набор символов (для символьных типов данных и BLOB полей);

  • порядок сортировки (для символьных типов данных).

Example 1. Создание домена
CREATE DOMAIN BOOL3 AS SMALLINT
			CHECK (VALUE IS NULL OR VALUE IN (0, 1));
См. также:

Явное преобразование типов данных, где описаны отличия работы механизма преобразования данных при указании доменов для опций TYPE OF и TYPE OF COLUMN.

Переопределение свойств доменов

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

Table 1. Возможности переопределения атрибутов столбцов на базе доменов
Атрибут Переопределяется? Примечания

тип данных

нет

значение по умолчанию

да

текстовый набор символов

да

также может использоваться, чтобы восстановить для столбцазначения по умолчанию для базы данных

текстовый порядок сортировки

да

условия проверки CHECK

нет

для добавления в проверку новых условий, можно использовать воператорах CREATE и ALTER на уровне таблицы соответствующиепредложения CHECK.

NOT NULL

нет

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