Л. Партыка, И. И. Попов системы управления базами данных



бет124/215
Дата29.01.2022
өлшемі4,64 Mb.
#115817
1   ...   120   121   122   123   124   125   126   127   ...   215
Байланысты:
Голицына О Л Партыка Т Л Попов И И Системы

Добавление столбца. Для добавления нового столбца следует использовать ключевое слово 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, ссылающегося на таблицу Дисциплины.




Достарыңызбен бөлісу:
1   ...   120   121   122   123   124   125   126   127   ...   215




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет