Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 Создание и редактирование таблиц с помощью команд языка SQL.docx
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
161 Кб
Скачать
☆

Редактирование таблицы при помощи sql-запросов

Команда ALTER TABLE может быть использована для изменения структуры таблицы — добавления и удаления строк, установления ограничений на вводимые данные.

Задание: добавить столбец Цвет (Color) в таблицу Flowers:

USE purchase_flowers

ALTER TABLE Flower

ADD color VARCHAR(40) NOT NULL

Удалить созданный столбец можно командой DROP:

USE purchase_flowers

ALTER TABLE Flower

DROP COLUMN color

Часто необходимо создавать ограничения на значения данных. Они бывают:

1) ограничение NOT NULL;

2) проверочное ограничение;

3) ограничение уникальности;

4) ограничение первичного ключа;

5) ограничение внешнего ключа (рассмотрено выше).

Ограничение not null

Задание: Для создания этого ограничения можно воспользоваться проверкой (CHECK):

USE purchase_flowers

ALTER TABLE Flower

ADD CONSTRAINT add_nnull CHECK (if_flowering IS NOT NULL)

Задание: Проверьте в таблицах БД DB_BOOKS ограничения NOT NULL в соответствии с предложенной структурой данных (см. графу «Возможность содержать NULL»). При необходимости добавьте указанное ограничение.

В общем случае синтаксис проверочного ограничения выглядит следующим образом:

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

ADD CONSTRAINT <имя ограничения> CHECK (<условие проверки>)

Задание: Задать проверочное ограничение в столбце kinf_leaf (виды листьев) на запись только определенных значений:

USE purchase_flowers

ALTER TABLE Flower

ADD CONSTRAINT leaf_det CHECK (kind_leaf IN ('простой', 'сложный'))

Если таблица не создана, то оператор CONSTRAINT указывается в конструкции CREATE TABLE после перечисления всех столбцов создаваемой таблицы:

CREATE TABLE Flower(

code_flower INT PRIMARY KEY NOT NULL, -- код цветка

name_flower VARCHAR(40) NOT NULL, -- название цветка

kind_flower VARCHAR(40), -- сорт цветка

mean_height INT NOT NULL, -- средняя высота

kind_leaf VARCHAR(40), -- тип листа

if_flowering BIT, -- цветущий

additional_inf VARCHAR(40), -- дополнительная информация

CONSTRAINT leaf_det CHECK (kind_leaf IN ('простой', 'сложный'))

)

Чтобы удалить ограничение, используйте конструкцию:

ALTER TABLE Flower DROP leaf_det

Ограничение уникальности

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

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

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

ADD CONSTRAINT <имя ограничения> UNIQUE (<имя столбца1>, <имя столбца2>, …)

Реализация:

ALTER TABLE Flower

ADD CONSTRAINT name_flower_unique UNIQUE (name_flower)

Задание: Задайте проверочные ограничения в таблицах БД DB_BOOKS для поля Город издательства. Данное поле должно принимать следующие значения – Москва, Санкт-Петербург.

Задание: задайте ограничение уникальности для поля Название издательства