Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
для студентов РУБД / теория по SQL 1 часть.doc
Скачиваний:
47
Добавлен:
21.03.2016
Размер:
631.3 Кб
Скачать

'Yyyy-mm-dd',yy-mm-dd' Например '98-12-31', "98.12.31', '98/12/31'

Как результат выполнения функции, возвращающей величину, приемлемую в контекстах типов данных DATETIME, DATE или TIMESTAMP (например, функции NOW() или CURRENT_DATE().

Модификация таблиц

ALTER [IGNORE] TABLE table ADD [COLUMN] create_clause

ALTER [IGNORE] TABLE table ADD INDEX [name] (column, . . .)

ALTER [IGNORE] TABLE table ADD UNIQUE [name] (column, . . .)

ALTER [IGNORE] TABLE table ALTER [COLUMN] column SET DEFAULT value

ALTER [IGNORE] TABLE table ALTER [COLUMN] column DROP DEFAULT

ALTER [IGNORE] TABLE table CHANGE [COLUMN] column create..clause

ALTER [IGNORE] TABLE table DROP [COLUMN] column

ALTER [IGNORE] TABLE table DROP FOREIGN KEY key

ALTER [IGNORE] TABLE table DROP INDEX key

ALTER [IGNORE] TABLE table DROP PRIMARY KEY

ALTER [IGNORE] TABLE table MODIFY [COLUMN] create_clause

ALTER [IGNORE] TABLE table RENAME [AS] new_name

Оператор ALTER охватывает широкий набор действий, которые изменяют структуру таблицы. Этот оператор используется для добавления, изменения или удаления столбцов существующей таблицы, а также для удаления индексов. Несколько операторов ALTER могут быть объединены в одно предложение с помощью запятых:

ALTER TABLE mytable DROP myoldcolumn, ADD mynewcolumn INT

Для модификации таблицы MySQL создает копию таблицы и изменяет ее, выполняя все модифицирующие запросы. Когда все изменения сделаны, старая таблица удаляется, а ее место занимает новая таблица. В этой точке выполняются все поставленные в очередь запросы. В целях безопасности, если какой-либо из запросов создает дублирующие ключи, которые должны быть уникальными, предложение ALTER откатывается и отменяется. Если в предложении присутствует ключевое слово IGNORE, дублированные уникальные ключи игнорируются, и запрос ALTER исполняется как обычно.

ADD [COLUMN] create,clause Добавляет новый столбец в таблицу. Выражение create_clause имеет тот же вид, что и используемое в операторе CREATE. Таблица должна существовать и не иметь столбца с тем же именем, что у добавляемого столбца.

ADD INDEX [ name ] ( column , ...) Создает индекс из указанных столбцов. В индексе могут быть скомбинированы до 15 столбцов. Указывать имя для индекса необязательно. Если не задано имя, индекс будет назван по имени первого столбца в списке (с числовым суффиксом _2, _3 и т. д., если это необходимо для уникальности).

ADD UNIQUE [name] (column, ...) Идентично ADD INDEX за исключением того, что индексированные поля гарантированно уникальны. То есть, если пользователь попытается добавить значение, уже существующее в уникальном индексе, будет выдано сообщение об ошибке.

ALTER [COLUMN] column SET DEFAULT value

ALTER [COLUMN] column DROP DEFAULT

Создает, изменяет или удаляет значение по умолчанию для столбца. Если используется фраза SET DEFAULT , значение по умолчанию для указанного столбца изменяется на новое (даже если до этого не существовало значений по умолчанию). При использовании DROP DEFAULT, существующее значение по умолчанию удаляется. При этом любые существующие записи, созданные с помощью этого значения, остаются неизмененными. (Ключевое слово COLUMN необязательно и не имеет эффекта.)

CHANGE [COLUMN] new_column_name create_clause

MODIFY [COLUMN] create__clause

Изменяет определение столбца. Предложение используется для изменения типа данных столбца с минимально возможным воздействием на данные. Выражение create_clause то же, что и в операторе CREATE. Оно включает имя столбца и поэтому, используя это предложение, вы изменяете имя столбца. (Например, ALTER TABLE mytable CHANGE name newname CHAR(30)). Предложение MODIFY аналогично CHANGE, но новый столбец имеет то же имя, что и старый.

DROP [COLUMN] column Удаляет столбец из таблицы. Это предложение удалит из таблицы столбец и все его содержимое. Единственный способ восстановить данные, уничтоженные таким способом, - использовать резервную копию. Все ссылки в индексах на этот столбец будут удалены. Все индексы, где этот столбец был единственным, будут также уничтожены.

DROP INDEX key Удаляет индекс из таблицы. Это предложение полностью сотрет индекс из таблицы. Предложение не затронет данные самой таблицы, только данные индекса. Поэтому индекс, удаленный таким способом, может быть воссоздан с помощью оператора ALTER TABLE ... ADD INDEX.

DROP PRIMARY KEY АналогDROPINDEX. Ищет специальный индекс, называемый первичным ключом(Primary Key). Если в таблице первичный ключ не найден, будет удален первый уникальный индекс.

RENAME [AS] new_table Изменяет имя таблицы. Эта операция не влияет на данные или индексы внутри таблицы. Если предложение применяется одно, без других ALTER TABLE операторов, MySQL не создает временную таблицу, как в случае других операторов, а просто выполняет быстрое переименование табличных файлов на уровне Unix.

Чтобы применить любое из действий ALTER TABLE , у вас должны быть права SELECT, INSERT, DELETE, UPDATE, CREATE и DROP на изменяемую таблицу.