| Каталог | Оглавление | Индекс раздела |
Таблицы создаются оператором SQL CREATE TABLE.
Для целей нашего лабораторного практикума в большинстве случаев может быть достаточна общая форма оператора, синтаксис которой показан на следующей диаграмме.
|
Некоторые диалектные различия в применении оператора описаны ниже.
| Oracle | DB2 |
| PRIMARY KEY подразумевает NOT NULL | PRIMARY KEY употребляется только вместе с NOT NULL |
| ON DELETE CASCADE / RESTRICT (по умолчанию) | ON DELETE NO ACTION, RESTRICT (по умолчанию) / CASCADE / SET NULL Разница между NO ACTION и RESTRICT: RESTRICT проверяется перед всеми остальными ограничениями, NO ACTION - после. |
| ON UPDATE - не задается. | ON UPDATE NO ACTION / RESTRICT (по умолчанию). |
Для целей нашего лабораторного практикума в большинстве случаев можно обойтись типами данных, представленными в следующей таблице:
| Тип данных | Стандарт ANSI | DB2 | Oracle | Примечания |
| Символьные строки постоянной длины | CHARACTER (n) | CHAR(n) | CHAR(n) | В DB2 максимальный размер типа CHAR - 256 символов, в Oracle - 2000 |
| Символьные строки переменной длины | CHARACTER VARIYNG(n) | VARCHAR (n) | VARCHAR2(n) VARCHAR(n) |
В DB2 максимальный размер типа VARCHAR - 32К символов, в Oracle - 4000. VARCHAR2 и VARCHAR в Oracle пока являются синонимами. В будущих версиях для них, возможно, будут введены разные правила сравнения. |
| Символьные строки в национальной кодировке | - | GRAPHIC(n) VARGRAPHIC(n) |
NCHAR(n) NAVARRCHAR2(n) |
Тип данных для представления строк национальных алфавитов в 2-байтной кодировке. Ограничения длин - те же, что и для CHAR, VARCHAR. n - число символов. |
| Двоичные данные | BIT(n) BIT VARIYNG(n) |
CHAR(n) FOR BIT DATA VARCHAR(n) FOR BIT DATA |
- RAW(n) |
Двоичные данные могут использоваться для тех же целей, что и строковые, но эти типы не сравниваются. При импорте/экспорте двоичные данные, в отличие от символьных, не перекодируются. |
| Числовые данные | NUMERIC (p,s) DECIMAL (p,s) SMALLINT INTEGER FLOAT(p) REAL DOUBLE PRECISION |
NUMERIC(p,s) DECIMAL (p,s) SMALLINT INTEGER BIGINT FLOAT(p) REAL DOUBLE |
NUMBER(p,s) | В Oracle существует единственный тип числовых данных, но Oracle "понимает" также и все ANSI-типы, переводя их в свой тип NUMBER. Размеры целочисленных типов: SMALLINT - 2 байта, INTEGER - 4 байта, BIGINT (только DB2) - 8 байтов. |
| Дата и время | DATE TIME TIMESTAMP INTERVAL |
DATE TIME TIMESTAMP |
DATE | См. отдельное Приложение |
Информацию о структуре созданной таблицы можно получить:
DESCRIBE TABLE имя таблицы
DESC имя таблицы
| Каталог | Оглавление | Индекс раздела |