КаталогИндекс раздела
НазадОглавлениеВперед


2.2 Описание столбца и типы данных

Синтаксис описания столбца показан на рис.2.2.

Рисунок 2.2 - Синтаксис описания столбца

Обязательными элементами описания столбца являются имя столбца и тип данных в столбце.

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

Стандартом SQL предусматривается набор основных типов для данных символьных, числовых и т.д. Внутреннее представление и ограничения на размер типов стандартом не устанавливаются, они по-разному реализуются в разных СУБД. Не все СУБД в полном объеме реализуют стандартные типы данных, кроме того, различные СУБД могут иметь собственные типы данных. Ниже мы приводим стандартные типы данных и основные типы данных для СУБД DB2 и Oracle.

При определении столбца для него может быть задано значение по умолчанию (DEFAULT). Если при занесении данных в строку таблицы не указывается значение для этого столбца, в столбец заносится значение по умолчанию.

Ограничения столбца будут описаны в разделе 2.5.

2.2.1 Символьные типы

Стандарт устанавливает два символьных типа: строки постоянной длины - CHARACTER(n) и строки переменной длины - CHARACTER VARIYNG(n). Допускаются сокращения CHAR и VARCHAR соответственно. Число n задает максимальную длину строки.

И Oracle, и DB2 обеспечивают эти типы. Ограничения на значения n составляют для Oracle - CHAR(2000) и VARCHAR(4000), для DB2 - CHAR(256) и VARCHAR(32767) .

Кроме того, обе СУБД предусматривают символьные типы данных для работы с 2-байтными символами Unicode. В DB2 обработка Unicode уже реализована в типах GRAPHIC(n) и VARGRAPHIC(n). В Oracle предполагается ввести в будущем единообразную обработку символьной информации в любой кодировке, для чего введен тип VARCHAR2(n), пока же он "работает" так же, как VARCHAR.

Константы символьного типа берутся в апострофы. Апостроф внутри символьной константы кодируется двумя апострофами.

Примеры символьных констант:

'KING'   'символьная константа'    'O''Realy'

2.2.2 Битовые типы

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

Стандарт предусматривает типы данных BIT(n) и BIT VARIYNG(n).

В обеих наших СУБД реализован только битовый тип постоянной длины. В DB2 это тип CHAR(n) FOR BIT DATA, в Oracle - RAW(n) . Ограничения на длину - те же, что и для типов CHAR.

2.2.3 Числовые типы

Стандарт предусматривает следующие числовые типы.

SMALLINT и INTEGER - целые двоичные числа со знаком, размером 2 и 4 байта соответственно

NUMERIC(p,s) и DECIMAL(p,s) - типы-синонимы для десятичных чисел с фиксированной точкой. Число p задает общее количество десятичных разрядов в числе, s - число разрядов после точки.

FLOAT(p), REAL, DOUBLE PRECISION - двоичные числа с плавающей точкой. Разрядность типов REAL и DOUBLE PRECISION зависит от реализации.

В DB2 реализованы все стандартные числовые типы, и имеется дополнительный тип BIGINT - целые двоичные числа со знаком размером 8 байт.

В Oracle, в отличие от большинства других СУБД, внутреннее представление всех числовых данных одинаково. Поэтому в Oracle имеется единственный числовой тип NUMBER(p,s), семантически идентичный типу NUMERIC. Oracle, однако, принимает и все стандартные типы и автоматически переводит их во внутреннее представление NUMBER.

Константы числовых типов записываются так же, как и десятичные константы в большинстве языков программирования. Для дробных констант возможна нотация как с десятичной точкой, так и в E-форме.


НазадОглавлениеВперед
КаталогИндекс раздела