Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 3.5.5 Управление таблицами.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
96.26 Кб
Скачать

Изменение структуры таблицы — команда 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 (например, синтаксис конструкции <определение_ столбца> совпадает с синтаксисом аналогичной конструкции команды CREATE TABLE).

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

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

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

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

• изменение, добавление и удаление. ограничений (первичных и внешних ключей, значений по умолчанию).

 

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

 

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

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

 

ALTER TABLE Студенты

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

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

 

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

 

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

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

• на столбец наложены ограничения целостности СНЕСК или UNIQUE (исключение составляют столбцы, имеющие тип данных переменной длины, т. е. типы данных, начинающиеся на var);

• со столбцом связано значение по умолчанию (в этом случае допускается изменение длины, общего количества цифр или количества цифр после десятичной точки при неизменном типе данных).

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

Пример модификации столбца «Номер группы» таблицы «Студенты» (тип данных INTEGER заменяется на CHAR):

 

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

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