Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по бд.doc
Скачиваний:
6
Добавлен:
01.05.2025
Размер:
4.79 Mб
Скачать

Синтаксис

ALTER TABLE table <operation> [, <operation> ...];

<operation> = {ADD <col_def> | ADD <table_constraint> | DROP col | DROP CONSTRAINT constraint}

<col_def> = col {<datatype> | [COMPUTED [BY] (<expr>) | domain}

[DEFAULT {literal | NULL | USER}] [NOT NULL] [<col_constraint>] [COLLATE collation]

Обратите внимание: Предложение COLLATE не может быть определено для BLOB столбцов.

<col_constraint> = [CONSTRAINT constraint] <constraint_def> [<col_constraint>]

<constraint_def> = {PRIMARY KEY | UNIQUE | CHECK (<search_condition>) | REFERENCES other_table [(other_col [, other_col ...])]}

<datatype> = {

{SMALLINT | INTEGER | FLOAT | DOUBLE PRECISION} [<array_dim>]

| {DECIMAL | NUMERIC} [(precision [, scale])] [<array_dim>]

| DATE [<array_dim>]

| {CHAR | CHARACTER | CHARACTER VARYING | VARCHAR}

[(1...32767)] [<array_dim>] [CHARACTER SET charname]

| {NCHAR | NATIONAL CHARACTER | NATIONAL CHAR}

[VARYING] [(1...32767)] [<array_dim>]

| BLOB [SUB_TYPE {int | subtype_name}] [SEGMENT SIZE int]

[CHARACTER SET charname]

| BLOB [(seglen [, subtype])]

}

<array_dim> = [x:y [, x:y ...]]

Обратите внимание: Внешние скобки (выделены жирным) должны быть включены в объявление массивов.

<table_constraint> = CONSTRAINT constraint <tconstraint_opt>[<table_constraint>]

<tconstraint_opt> = {

{PRIMARY KEY | UNIQUE} (col [, col ...]) | FOREIGN KEY (col [, col ...]) REFERENCES other_table | CHECK (<search_condition>)}

Обратите внимание: Для полного синтаксиса <search_condition>, смотри CREATE TABLE.

Аргумент

Описание

table

Имя существующей таблицы, которую надо измененить.

<operation>

Операция, которую необходимо произвести над таблицей. Допустимые опции:

  • ADD: Добавить новый столбец или ограничение к таблице.

  • DROP: Удалить существующий столбец или ограничение из таблицы.

<col_def>

Описание нового столбца, который следует добавить. Должно включать имя столбца и тип данных. Может включать значение по умолчанию, ограничения столбца и специфический порядок сортировки.

<table_constraint>

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

col

Имя добавляемого или удаляемого столбца. Имя столбца должно быть уникальным внутри таблицы.

<constraint>

Имя добавляемого или удаляемого ограничения. Имя ограничения должно быть уникальным внутри таблицы.

COLLATE collation

Добавляет порядок сортировки к определенной таблице.

<datatype>

Тип данных добавляемого столбца.

domain

Имя домена, на котором определение столбца должно быть основано.

COMPUTED [BY] <expr>

Определяет вычисляемый столбец основаный на выражении <expr>. Такой столбец не занимает пространства памити в базе данных. <expr> может быть любым арифметическим выражением допустимым для типов данных в выражении. Другие столбцы, на котрые ссылается выражение <expr>, должны существовать раньше, чем они будут использованы. Выражение не может ссылатся на BLOB столбцы. <expr> должно возвращать одиночное значение и не может возвращать массив.

NOT NULL

Определяет что столбец не может содержать значение NULL. Если таблица уже имеет строки, новые столбцы не могут быть NOT NULL. Атрибут NOT NULL используется только для столбцов.

DEFAULT

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

  • literal: Вставляется специфическая строка, числовое значение, или дата.

  • NULL: Вводится значение NULL.

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

Установка значению по умолчанию на уровне столбца отменяет значение по умолчанию на уровне домена.

<constraint_def>

Определение ограничения столбца.

CONSTRAINT

Добавляет именованное ограничение к столбцу.

DROP CONSTRAINT

Удаляет определенное ограничение таблицы.