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

Синтаксис скалярных типов данных

Скалярные типы данных — это простые типы данных, которые содержат одно значение.Синтаксис типов BLOB рассматривается отдельно в секции Синтаксисе типов данных BLOB.

Синтаксис:
<domain_or_non_array_type> ::=
    <scalar_datatype>
  | <blob_datatype>
  | [TYPE OF] domain
  | TYPE OF COLUMN rel.col

<scalar_datatype> ::=
    {SMALLINT | INT[EGER] | BIGINT | INT128}
  | BOOLEAN
  | {FLOAT | REAL | DOUBLE PRECISION}
  | [LONG] FLOAT [(binary-precision)]
  | DECFLOAT[({16 | 34})]
  | DATE
  | {TIME | TIMESTAMP} [{WITH | WITHOUT} TIME ZONE]
  | {DECIMAL | NUMERIC} [(precision [, scale])]
  | {VARCHAR | {CHAR | CHARACTER} VARYING} (length)
    [CHARACTER SET charset]
  | {CHAR | CHARACTER} [(length)] [CHARACTER SET charset]
  | {NCHAR | NATIONAL {CHARACTER | CHAR}} VARYING (length)
  | {NCHAR | NATIONAL {CHARACTER | CHAR}} [(length)]
Table 1. Параметры декларации скалярных типов
Параметр Описание

domain

Имя домена (только не домены типа массив).

rel

Имя таблицы или представления.

col

Имя столбца таблицы или представления (только столбцы не типа массив).

binary-precision

Двоичная точность.От 1 до 53 бит.

precision

Десятичная точность.От 1 до 38 десятичных цифр.

scale

Масштаб или количество знаков после запятой.От 0 до 38.Оно должно быть меньше или равно точности.

length

Максимальная длина строки в символах.

charset

Набор символов.

domain_or_non_array_type

Типы, не являющиеся массивами, которые можно использовать в коде PSQL и операторе CAST.

Использование доменов в объявлениях

Имя домена может быть указано как тип параметра PSQL или локальной переменной.Параметр или переменная наследует все атрибуты домена.Если для параметра или переменной указано значение по умолчанию, оно переопределяет значение по умолчанию, указанное в определении домена.

Если предложение TYPE OF добавлено перед именем домена, то используется только тип данных домена: любые другие атрибуты домена — ограничение NOT NULL, ограничение CHECK, значение по умолчанию — не проверяются и не используются.Однако, если домен имеет текстовый тип, всегда используются его набор символов и последовательность сортировки.

Использование TYPE OF COLUMN в объявлениях

Входные и выходные параметры или локальные переменные также могут быть объявлены с использованием типа данных столбцов в существующих таблицах и представлениях.Для этого используется предложение TYPE OF COLUMN, в котором в качестве аргумента указывается rel.col.

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

Синтаксис типов данных BLOB

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

Синтаксис типа BLOB
<blob_datatype> ::=
    BLOB [SUB_TYPE {subtype_num | subtype_name}]
    [SEGMENT SIZE seglen] [CHARACTER SET charset]
  | BLOB [(seglen [, subtype_num])]
Table 1. Параметры декларации типа BLOB
Параметр ^^ Описание

charset

Набор символов (игнорируется для всех подтипов кроме 1 (TEXT)).

subtype_num

Номер подтипа BLOB.

subtype_name

Мнемоническое имя подтипа BLOB; это может быть TEXT, BINARY или одно из (других) стандартных или настраиваемых имен, определенных в RDB$TYPES для RDB$FIELD_NAME = 'RDB$FIELD_SUB_TYPE'.

seglen

Размер сегмента не может быть больше 65535, по умолчанию — 80, если не указан.Размер сегмента может быть может быть переопределён клиентом и в большинстве случаев не учитывается.