Введение в стандарты языка баз данных SQL


Определение таблицы


С помощью оператора определения таблицы можно создать постоянную базовую таблицу, создаваемую локальную временную таблицу или глобальную временную таблицу. Оператор определяется следующими синтаксическими правилами:

<table definition> ::= CREATE [ { GLOBAL LOCAL } TEMPORARY ] TABLE <table name> <table element list> [ ON COMMIT { DELETE PRESERVE } ROWS ] <table element list> ::= <left paren> <table element> [ { <comma> <table element> }... ] <right paren> <table element> ::= <column definition> |<table constraint definition>

Пояснения:

  1. Если определение таблицы содержится в определении схемы и имя таблицы содержит имя схемы, то это имя схемы должно быть таким же, как явно или неявно специфицированное имя схемы в определении схемы.
  2. Схема, идентифицируемая явным или неявным именем схемы, входящим в имя таблицы, не должна содержать таблиц с тем же именем.
  3. Если указано ONCOMMIT, то должно быть указано и TEMPORARY.
  4. Если указано TEMPORARY и не указано ONCOMMIT, то неявно предполагается наличие ONCOMMITDELETEROWS.
  5. Определение таблицы должно содержать по крайней мере одно определение столбца.
  6. При выполнении оператора определения таблицы создается набор описателей привилегий, определяющих привилегии INSERT, SELECT, UPDATE, DELETE и REFERENCES на этой таблице и INSERT, SELECT, UPDATE и REFERENCES для каждого определения столбца. Все привилегии являются передаваемыми и относящимися к идентификатору авторизации из определения схемы или модуля в зависимости от того, где выполняется оператор определения таблицы.

Определение столбца имеет следующий синтаксис:

<column definition> ::= <column name> { <data type> <domain name> } [ <default clause> ] [ <column constraint definition>... ] [ <collate clause> ] <column constraint definition> ::= [ <constraint name definition> ] <column constraint> [ <constraint attributes> ] <constraint name definition> ::= CONSTRAINT <constraint name> <column constraint> ::= NOT NULL |<unique specification> |<references specification> |<check constraint definition> <constraint attributes> ::= <constraint check time> [ [ NOT ] DEFERRABLE ] |[ NOT ] DEFERRABLE [ <constraint check time> ]




Начало  Назад  Вперед



Книжный магазин