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.