- •Лабораторная работа №1: «Создание и редактирование таблиц с помощью команд языка sql»
- •Задание внешних ключей в среде Microsoft sql Server Management Studio
- •Редактирование таблицы при помощи sql-запросов
- •Ограничение not null
- •Ограничение уникальности
- •Операторы манипулирования данными (dml)
- •Оператор delete
Редактирование таблицы при помощи 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 для поля Город издательства. Данное поле должно принимать следующие значения – Москва, Санкт-Петербург.
Задание: задайте ограничение уникальности для поля Название издательства
