Создание таблицы
Функция
Определение базовой таблицы или глобальной временной таблицы.
Спецификация
::=
::=
{[IF NOT EXISTS | OR REPLACE] TABLE | TABLE [IF NOT EXISTS]}
[имя схемы.]имя таблицы [синоним таблицы]
[кодировка символьных данных таблицы]
[мандатный уровень доступа к таблице]
[определение столбца][, ...]
[ограничение таблицы]
[спецификация параметров таблицы]
[загрузка таблицы]
::=
::=
::=
::=
::=
::=
{CHAR|CHARACTER} [(длина)] [CHARACTER SET "кодировка"]
|{VARCHAR|CHARACTER VARYING|CHAR VARYING} (длина)
[CHARACTER SET "кодировка"]
|BYTE [(длина)]
|{VARBYTE|BYTE VARYING} (длина)
|SMALLINT
|{INTEGER|INT}
|BIGINT
|REAL
|DOUBLE [PRECISION]
|FLOAT [(точность)]
|{DECIMAL|DEC|NUMERIC} [(точность[, мантисса])]
|DATE
|BOOLEAN
|{NCHAR|NATIONAL CHAR|NATIONAL CHARACTER} [(длина)]
|{NCHAR VARYING|NATIONAL CHAR VARYING|NVARCHAR
|NATIONAL CHARACTER VARYING} (длина)
|{BLOB|LONG RAW} [CHARACTER SET "кодировка"]
|EXTFILE [ROOT 'каталог']
}
::=
::=
::=
|{LOCALTIME |LOCALTIMESTAMP}
|CURRENT_DATE
|{CURRENT_TIME|CURRENT_TIMESTAMP}
| NULL
| USER
::=
::=
::=
::=
::=
::=
::=
|UNIQUE
|ON UPDATE {SYSDATE|NOW|LOCALTIME|LOCALTIMESTAMP|CURRENT_DATE
|CURRENT_TIME | CURRENT_TIMESTAMP}
::=
::=
[ON DELETE {CASCADE | SET NULL | SET DEFAULT | {NO ACTION | RESTRICT}}]
::=
::=
::=
::=
::=
::=
::=
::=
[MATCH {SIMPLE | FULL | PARTIAL}] [спецификация действий]
::=
::=
::=
[ON DELETE {CASCADE | SET NULL | SET DEFAULT | {NO ACTION | RESTRICT}}]
::=
::=
::=
::=
::=
::=
::=
[MAXVALUE верхняя граница | NO MAXVALUE]
[MINVALUE нижняя граница | NO MINVALUE]
[CYCLE|NO CYCLE]
::=
::=
::=
::=
::=
::=
::=
::=
| CREATE GLOBAL TEMPORARY TABLE [IF NOT EXISTS]}
[имя схемы.]имя таблицы
[CHARACTER SET "кодировка"]
список элементов таблицы
[действия при завершении транзакции]
[мандатный уровень доступа к таблице]
::=
::=
::=
::=
::=
Синтаксические правила
-
Опция
IF NOT EXISTS
отменяет выполнение оператора, если указанная таблица уже существует в БД. -
Опция
OR REPLACE
заставляет удалять существующую в БД таблицу (вместе со всеми её данными) и создавать новую таблицу под тем же именем, возможно, с новыми параметрами. На удаляемую таблицу не должно быть ссылок из других таблиц/представлений БД. -
Одновременное использование опций
IF NOT EXISTS
иOR REPLACE
запрещено. -
Команда создания таблицы должна включать в себя, по крайней мере, одно
< определение столбца >
. -
Для создания таблицы пользователь должен иметь уровень прав RESOURCE или DBA.
-
< Имя таблицы >
должно быть уникальным среди имен существующих в БД таблиц, представлений или их синонимов в пределах< имени схемы >
либо текущей схемы (при её отсутствии в спецификации).Примечание
Ядро СУБД при выполнении SELECT-запросов, содержащих группировку или некоторые другие конструкции, создает для своих нужд временные таблицы с именами вида "Table#nnn#", где nnn – системный номер таблицы, поэтому, во избежание конфликтов, не рекомендуется давать пользовательским таблицам похожие имена.
Примеры
create or replace table Admin.Auto … create if not exist table "Петров". Sale … create or replace table "Ведомость товаров" as Year_Ved …
- Кодировка символьных данных таблицы
- Определение мандатного уровня доступа к таблице
- Определение имени столбца
- Определение типа данных столбца
- Определение подставляемого значения столбца
- Определение автоматически наращиваемого значения столбца
- Определение значения по умолчанию столбцов таблицы
- Определение значения из последовательности
- Определение генерируемого значения
- Определение фильтра для фразового поиска
- Определение мандатного уровня доступа к столбцу
- Определение ограничения NULL-значений
- Определение ссылочной целостности столбца
- Определение контролируемого значения столбца
- Определение первичного ключа таблицы
- Определение уникального ключа таблицы
- Определение внешнего ключа таблицы
- Определение ссылочной целостности таблицы
- Спецификация параметров таблицы
- Создание таблицы с загрузкой данных
- Создание глобальной временной таблицы
- Создание копии базовой таблицы