Добавление столбца. Для добавления нового столбца следует использовать ключевое слово add, после которого должно стоять определение столбца.
Добавим, например, в таблицу Студенты столбец Год поступления следующим образом:
ALTER TABLE Студенты
ADD Год_поступления INTEGER NOT NULL DEFAULT
YEAR(GETDATE())
После выполнения этой команды в структуру таблицы Студенты будет добавлен еще один столбец со значением по умолчанию, равным текущему году (значение по умолчанию вычисляется
С ПОМОЩЬЮ ДВУХ ВСТРОЕННЫХ ФУНКЦИЙ — YEAR () И GETDATE () ).
Модификация столбца. Для модификации существующего столбца таблицы служит ключевое слово alter column. Изменение свойств столбца невозможно, если:
столбец участвует в ограничениях primary key или
FOREIGN KEY;
на столбец наложены ограничения целостности check или unique (исключение составляют столбцы, имеющие тип данных переменной длины, т. е. типы данных, начинающиеся на var);
если со столбцом связано значение по умолчанию (в этом случае допускается изменение длины, общего количества цифр или количества цифр после десятичной точки при неизменном типе данных).
Определяя для столбца новый тип данных, следует помнить о том, что старый тип данных должен конвертироваться в новый.
Пример модификации столбца Номер_группы таблицы Студенты (тип данных integer заменяется на char):
ALTER TABLE Студенты
ALTER COLUMN Номер_группы CHAR(6) NOT NULL
Удаление столбца. Для удаления столбца из таблицы используется предложение drop column <имя_столбца>. При удалении столбцов следует учитывать, что нельзя удалять столбцы с ограничениями целостности check, foreign key, unique или primary key, а также столбцы, для которых определены значения по умолчанию (в виде ограничения целостности на уровне столбца или на уровне таблицы).
Рассмотрим, например, команду удаления из таблицы Студент столбца Год_поступления:
ALTER TABLE Студенты
DROP COLUMN Год_поступления
Эта команда выполнена не будет, так как при добавлении столбца было определено значение по умолчанию.
Добавление ограничений на уровне таблицы. Для добавления ограничений на уровне таблицы используется предложение add
CONSTRAINT <имя_ограничения>.
В качестве примера рассмотрим команды добавления внешних ключей в таблицы базы данных Сессия.
Добавление внешних ключей в таблицу Учебный_план (создание связи с именем FК_Дисциплина и связи с именем FК_Кадровый_состав):
ALTER TABLE Учебный_план ADD CONSTRAINT FК_Дисциплина FOREIGN KEY (ID_Дисциплина) REFERENCES Дисциплины ALTER TABLE Учебный_план ADD CONSTRAINT FК_Кадровый_состав FOREIGN KEY (ID_Преподаватель) REFERENCES Кадровый_состав
Добавление внешних ключей в таблицу Сводная_ведомость (создание связи с именем FK_Студенти связи с именем План):
ALTER TABLE Сводная_ведомость ADD CONSTRAINT FK_Студент FOREIGN KEY (ID_Студент) REFERENCES Студенты ALTER TABLE Сводная_ведомость ADD CONSTRAINT FK_Плaн FOREIGN KEY (ID_План) REFERENCES Учебный_план
С помощью конструкции add constraint создается поименованное ограничение. Необходимо отметить, что удаление любого ограничения на уровне таблицы происходит только по его имени, поэтому ограничение должно быть поименовано (чтобы его можно было удалить).
Рассмотрим еще один пример — добавление значения по умолчанию для столбца Номер_группы:
ALTER TABLE Студент
ADD CONSTRAINT DEF_Hoмep_группы DEFAULT 1 FOR
Номер_группы
В результате выполнения этой команды на уровне таблицы будет создано ограничение целостности с именем def номер группы.
Удаление ограничений. Для удаления из таблицы ограничения целостности используется предложение drop constraint <имя ограничениях>
Удаление ограничения целостности возможно только в том случае, когда оно поименовано (т. е. предложение <определение_ограничения> содержит именование ограничения CONSTRAINT).
Команда удаления построенного внешнего ключа FK_Дисциплина из таблицы Учебный_план выглядит следующим образом:
ALTER TABLE Учебный_план DROP CONSTRAINT FК_Дисциплина
Удалить же построенное ограничение DEF_Номер_группы можно с помощью следующей команды:
ALTER TABLE Студент
DROP CONSTRAINT DEF_Hoмep_группы
Удаление таблиц (DROP TABLE)
Удаление таблицы выполняется с помощью команды drop table:
DROP TABLE <имя_таблицы>
Единственный аргумент команды задает имя таблицы, которую необходимо удалить.
Операция удаления таблицы в некоторых случаях требует определенного внимания. Невозможно удалить таблицу, если на нее с помощью ограничения целостности foreign key ссылается другая таблица: попытка удаления таблицы Дисциплины вызовет сообщение об ошибке, так как на таблицу дисциплины ссылается таблица Учебный_план. Например, в ответ на использование команды
DROP TABLE Дисциплины будет выдано сообщение об ошибке, гласящее о невозможности удаления таблицы вследствие наличия ограничения целостности
FOREIGN KEY, ссылающегося на таблицу Дисциплины.
Достарыңызбен бөлісу: |