При описании таблицы должен быть определен хотя бы один столбец и могут быть определены ограничения для таблицы. Столбец определяется следующим образом:
определение столбца ::=
имя столбца|{имя домена
|тип данных [размер]}
[ограничение столбца...]
[DEFAULT значение по умолчанию]
[COLLATE имя сравнения]
Ограничение на длину и допустимые символы, используемые в именах столбцов, зависят от реализации.
В стандарте SQL-92 принято семь типов данных, но большинство из них имеют подтипы с собственными именами, используемыми при задании типов данных для столбцов или доменов. Именно каждый подтип обычно и считается типом данных, однако для работы самой СУБД нет необходимости различать типы данных в пределах категорий.
Стандарт предусматривает следующие категории данных:
· CHARACTER STRING (CHARACTER, CHARACTER VARYING);
· NATIONAL CHARACTER (NATIONAL CHARACTER, NATIONAL CHARACTER VARYING);
· BIT STRING (BIT, BIT VARYING);
· EXACT NUMERIC (NUMERIC, DECIMAL, INTEGER, SMOLLINT;
· APPROXIMATE NUMERIC (FLOAT, REAL, DOUBLE PRESION);
· DATETIME (DATE, TIME, TIMESTAMP);
· INTERVAL.
Если вместо типа данных указывается имя домена, то, естественно, что этот домен должен быть предварительно определен.
Ограничения, указанные в описании после определения столбца, относятся к этому столбцу.
Возможны следующие ограничения:
· NOT NULL;
· PRIMARY KEY;
· UNIQUE;
· CHECK;
· FOREIGN KEY/REFERENCES.
Если для столбца задано ограничение NOT NULL, то либо должно быть определено значение по умолчанию, либо каждый оператор INSERT или UPDATE не должен приводить к появлению NULL.
Если столбец определен на домене, который имеет собственное значение по умолчанию, и для этого столбца также задается значение по умолчанию, то значение столбца переопределяет значение домена.
предыдущаяследующая