CREATE TABLE table [EXTERNAL [FILE] "<filespec>"]
(<col_def> [, <col_def> | <tconstraint>...]);
<col_def> = col {datatype | COMPUTED [BY] (<expr>) | domain}
[DEFAULT {literal | NULL | USER}]
[NOT NULL] [<col_constraint>]
[COLLATE collation].
Обратите внимание: Предложение COLLATE не может быть определено для столбцов BLOB.
<datatype> = {
{SMALLINT | INTEGER | FLOAT | DOUBLE PRECISION} [<array_dim>]
| {DECIMAL | NUMERIC} [(precision [, scale])] [<array_dim>]
| DATE [<array_dim>]
| {CHAR | CHARACTER | CHARACTER VARYING | VARCHAR}
[(int)] [<array_dim>] [CHARACTER SET charname]
| {NCHAR | NATIONAL CHARACTER | NATIONAL CHAR}
[VARYING] [(int)] [<array_dim>]
| BLOB [SUB_TYPE {int | subtype_name}] [SEGMENT SIZE int]
[CHARACTER SET charname]
| BLOB [(seglen [, subtype])]
}
<array_dim> = [ x:y [, x:y...] ]
Обратите внимание: Внешние скобки (выделены жирным) должны быть включены в объявление массивов.
<expr> = Допустимое выражение SQL, которое возвращает единственное значение.
<col_constraint> = [CONSTRAINT constraint] <constraint_def>
[<col_constraint>]
<constraint_def> = {UNIQUE | PRIMARY KEY
| CHECK (<search_condition>)
| REFERENCES other_table [(other_col [, other_col...])]}
<tconstraint> = CONSTRAINT constraint <tconstraint_def>
[<tconstraint>]
<tconstraint_def> = {{PRIMARY KEY | UNIQUE} (col [, col...])
| FOREIGN KEY (col [, col...]) REFERENCES other_table
| CHECK (<search_condition>)}
|
|
<search_condition> =
{<val> <operator> {<val> | (<select_one>)}
| <val> [NOT] BETWEEN <val> AND <val>
| <val> [NOT] LIKE <val> [ESCAPE <val>]
| <val> [NOT] IN (<val> [, <val>...] | <select_list>)
| <val> IS [NOT] NULL
| <val> {[NOT] {= | < | >} | >= | <=}
{ALL | SOME | ANY} (<select_list>)
| EXISTS (<select_expr>)
| SINGULAR (<select_expr>)
| <val> [NOT] CONTAINING <val>
| <val> [NOT] STARTING [WITH] <val>
| (<search_condition>)
| NOT <search_condition>
| <search_condition> OR <search_condition>
| <search_condition> AND <search_condition>}
<val> = {
col [<array_dim>] | <constant> | <expr> | <function>
| NULL | USER | RDB$DB_KEY
} [COLLATE collation]
<constant> = num | "string" | charsetname "string"
<function> = {
COUNT (* | [ALL] <val> | DISTINCT <val>)
| SUM ([ALL] <val> | DISTINCT <val>)
| AVG ([ALL] <val> | DISTINCT <val>)
| MAX ([ALL] <val> | DISTINCT <val>)
| MIN ([ALL] <val> | DISTINCT <val>)
| CAST (<val> AS <datatype>)
| UPPER (<val>)
| GEN_ID (generator, <val>)
}
<operator> = {= | < | > | <= | >= |!< |!> | <> |!=}
<select_one> = SELECT (выбор) на одном столбце, который возвращает точно одно значение.
<select_list> = SELECT на одном столбце, который возвращает ноль или более значений.
<select_expr> = SELECT на списке значений, который возвращает ноль или более значений.
Аргумент | Описание | |
table | Имя для таблицы. Имя таблицы должно быть уникальным среди имен таблиц и процедур в базе данных. | |
EXTERNAL [FILE] "<filespec>" | Объявляет что данные для создаваемой таблицы, постоянно располагаются во внешней к базе данных таблице или файле. | |
col | Имя для столбца таблицы, должно быть уникальным именем в таблице. | |
<datatype> | SQL тип данных столбца. | |
COMPUTED [BY] (<expr>) | Базирует определение столбца на выражении. Выражение должно возвращать одиночное значение, и не иметь тип массива или возвращать массив. <expr> – любое арифметическое выражение допустимое для типа типа данных столбца. | |
domain | Имя существующего домена. | |
COLLATE collation | Определяет порядок сортировки для столбца. Порядок сортировки на уровне столбца отменяет порядок сортировки определенный на уроне домена | |
DEFAULT | Определяет значение по умолчанию столбца, которое вводится когда не сделано ни каких других вводов. Значения: · literal: Вставляется специфическая строка, числовое значение или дата. · NULL: Вводится значение NULL. · USER: Вводится имя текущего пользователя. Столбец должен быть совместимого текстового типа, для использования значения по умолчанию. Установка значению по умолчанию на уровне столбца отменяет значение по умолчанию на уровне домена | |
CONSTRAINT constraint | Помещает именованное ограничение на таблицу или столбец. Ограничение это правило применяемое к структуре или контексту таблицы. Если это предложение опущено, InterBase создает системное имя для ограничения. |
|
|