Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Изменение структуры таблицы — команда alter table

Поиск

Как бы тщательно ни планировалась структура таблицы, иногда возникает необходимость внести в нее некоторые изменения. Предположим, что в уже сформированную таблицу «Преподаватели» необходимо добавить номер домашнего телефона и домашний адрес. Эту операцию можно выполнять различными путями. Например, можно удалить таблицу со старой структурой и создать вместо нее новую таблицу с нужной структурой. Недостатком этого метода является то, что необходимо будет куда-то скопировать имеющиеся в таблице данные и переписать их в новую таблицу после ее создания.

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

добавить в таблицу определение нового столбца;

удалить столбец из таблицы;

изменить значение по умолчанию для какого-либо столбца;

добавить или удалить первичный ключ таблицы;

добавить или удалить внешний ключ таблицы;

добавить или удалить условие уникальности;

добавить или удалить условие на значение.

Рассмотрим обобщенный синтаксис команды ALTER TABLE:

ALTER TABLE<имя_ таблицы>

[ALTER COLUMN<имя_ столбца> [SET DEFAULT<выражение>]│

[DROP DEFAULT]]

│[ADD<определение_ столбца>]

│[DROP COLUMN<имя столбца> [CASCADE]│[RESTRICT]]

│[ADD[<определение_ первичного_ ключа>]│[<определение_ внешнего_ ключа>]│[<условие _уникальности>]│[<условие_ на_ значение>]]

│[DROP CONSTRAINT<имя_ ограничения> [CASCADE]│[RESTRICT]]

 

Команда ALTER TABLE берет на себя все действия по копированию данных во временную таблицу, удалению старой таблицы, созданию вместо нее новой таблицы с нужной структурой и последующим переписыванием в нее данных.

Назначение многих параметров и ключевых слов команды ALTER TABLEаналогично назначению соответствующих параметров и ключевых слов команды CREATE TABLE.

Основные режимы использования команды ALTER TABLEследующие:

добавление столбца;

удаление столбца;

модификация столбца;

изменение, добавление и удаление. ограничений

Добавление столбца

Для добавления нового столбца следует использовать ключевое слово ADD,после которого должно стоять определение столбца.

Добавим, например, в таблицу «Студенты» столбец Год поступления следующим образом:

ALTER TABLE Студенты

ADD Год_ поступления INTEGER NOT NULL DEFAULT YEAR (GETDATE())

После выполнения этой команды в структуру таблицы «Студент» будет добавлен еще один столбец со значением по умолчанию, равным текущему году (значение по умолчанию вычисляется с помощью двух встроенных функций — YEAR() иGETDATE()).

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

Для модификации существующего столбца таблицы служит ключевое слово ALTER COLUMN.Изменение свойств столбца невозможно, если:

столбец участвует в ограничениях PRIМАRY KEYили FOREIGN KEY;

на столбец наложены ограничения целостности СНЕСКили UNIQUE;

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

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

Пример модификации столбца «Номер группы» таблицы «Студенты»:

ALTER ТАВLE Студенты

ALTER COLUMN Номер_ группы СНАR (6) NОТ NULL

Удаление столбца

Для удаления столбца из таблицы используется предложение DROP COLUMN<имя_ столбца>. При удалении столбцов следует учитывать, что нельзя удалять столбцы с ограничениями целостности СНЕСК, FOREIGN KEY, UNIQUE или PRIMARY KEY, а также столбцы, для которых определены значения по умолчанию.

Рассмотрим, например, команду удаления из таблицы «Студенты» столбца «Год_ поступления».

ALTER TABLE Студенты

DROP COLUMN год_ поступления

Эта команда выполнена не будет, так как при добавлении: столбца было определено значение по умолчанию.



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 332; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.200.95 (0.009 с.)