Команда ALTER TABLE может быть использована для изменения структуры таблицы — добавления и удаления строк, установления ограничений на вводимые данные.
Задание: добавитьстолбец Цвет (Color) втаблицу Flowers:
USE purchase_flowers
ALTERTABLE Flower
ADDcolorVARCHAR(40)NOTNULL
Удалить созданный столбец можно командой DROP:
USE purchase_flowers
ALTERTABLE Flower
DROPCOLUMN color
Часто необходимо создавать ограничения на значения данных. Они бывают:
1) ограничение NOT NULL;
2) проверочное ограничение;
3) ограничение уникальности;
4) ограничение первичного ключа;
5) ограничение внешнего ключа (рассмотрено выше).
Ограничение NOT NULL
Задание: Для создания этого ограничения можно воспользоваться проверкой (CHECK):
USE purchase_flowers
ALTERTABLE Flower
ADDCONSTRAINT add_nnull CHECK(if_flowering ISNOTNULL)
Задание: Проверьте в таблицах БДDB_BOOKS ограничения NOT NULL в соответствии с предложенной структурой данных (см. графу «Возможность содержать NULL»). При необходимости добавьте указанное ограничение.
В общем случае синтаксис проверочного ограничения выглядит следующим образом:
ALTERTABLE<имя таблицы>
ADDCONSTRAINT<имя ограничения>CHECK(<условие проверки>)
Задание: Задать проверочноеограничение в столбце kinf_leaf (виды листьев) на записьтолько определенных значений:
USE purchase_flowers
ALTERTABLE Flower
ADDCONSTRAINT leaf_det CHECK(kind_leaf IN('простой','сложный'))
Если таблица не создана, то оператор CONSTRAINT указывается в конструкции CREATE TABLE после перечисления всех столбцов создаваемой таблицы:
CREATETABLE Flower(
code_flower INTPRIMARYKEYNOTNULL, -- кодцветка
name_flower VARCHAR(40)NOTNULL, -- названиецветка
kind_flower VARCHAR(40), -- сортцветка
mean_height INTNOTNULL, -- средняявысота
kind_leaf VARCHAR(40), -- типлиста
if_flowering BIT, -- цветущий
additional_inf VARCHAR(40), -- дополнительнаяинформация
CONSTRAINT leaf_det CHECK(kind_leaf IN('простой','сложный'))
|
)
Чтобы удалить ограничение, используйте конструкцию:
ALTERTABLE Flower DROP leaf_det
Ограничение уникальности
Ограничение уникальности гарантирует, что значения в наборе столбцов уникальны и непусты для всех строк в таблице.
Задание: задать ограничение уникальности в таблице Flower гарантирующее, что название цветка будет уникальным и непустым в рамках всей таблицы. Синтаксис:
ALTERTABLE<имя таблицы>
ADDCONSTRAINT<имя ограничения>UNIQUE(<имя столбца1>,<имя столбца2>, …)
Реализация:
ALTERTABLE Flower
ADDCONSTRAINT name_flower_unique UNIQUE(name_flower)
Задание: Задайте проверочные ограничения в таблицах БД DB_BOOKS для поля Город издательства. Данное поле должно принимать следующие значения –Москва, Санкт-Петербург.
Задание: задайтеограничение уникальности для поля Название издательства
Операторы манипулирования данными (DML)
Добавление записей в таблицу (INSERT)
Упрощенный синтаксис:
INSERTINTO<имя таблицы>(<имя столбца1>,<имя столбца2>, …)
VALUES(<значение столбца1>,<значение столбца2>, …)
Пример: добавить автора в таблицу Authors. Дляэтого:
INSERTINTO Authors(Code_author, name_author, Birthday)
VALUES(26,'ДжекЛондон','12.01.1876');
Задание: Добавьте в таблицу Цветок(Flower) несколько строк с помощью оператора INSERT для БД purchase_flowers. Проверьте, что занесенные строки действительно содержатся в таблице.
Оператор DELETE
Позволяет удалять строки целиком, а не значения отдельных полей таблицы. Синтаксис для удаления содержимого всей таблицы:
DELETEFROM<имя таблицы>
Обычно нужно удалить только некоторые определенные строки из таблицы. Чтобы определить какие строки будут удалены, следует использовать предложение WHERE. Синтаксис:
|
DELETEFROM<имя таблицы>
WHERE<критерий поиска строк>
Задание: Удалить созданную ранее запись:
DELETEFROM Authors
WHERE(Code_author =26);
Задание: Удалите из таблицы Цветок(Flower) несколько строк с помощью оператора DELETE для БД purchase_flowers. Проверьте получение ожидаемого результата.
Изменение значений полей (UPDATE)
Синтаксис для изменения значений определенных полей всех записей таблицы:
UPDATE<имя таблицы>
SET(<имя столбца1>,<имя столбца2>, …)=
(<новое значение столбца1>,<новое значение столбца2>, …)
Пример:
UPDATE Authors
SET name_author ='Толстой';
Обычно нужно изменить значения определенных полей некоторых записей таблицы по условию. Чтобы определить, значения полей каких записей будут изменены, следует использовать предложение WHERE.
Задание: изменить фамилию автора под кодом 23 на Гоголь.
UPDATE Authors
SET name_author ='Гоголь'
WHERE Code_author =23;
Задание: Измените в таблице несколько строк с помощью оператора UPDATEи предложения WHERE для БД purchase_flowers таблицы Цветы. Проверьте получение ожидаемого результата.
Вариант 1. БД «Учет выданных подарков несовершеннолетним детям сотрудников предприятия»
Код сотрудника | Код сотрудника | Код ребенка |
Фамилия | Имя ребенка | Стоимость подарка |
Имя | Дата рождения | Дата выдачи подарка |
Отчество | Код ребенка | Код выдачи |
Должность | ||
Подразделение | ||
Дата приема на работу |
Вариант 2. БД «Учет выполненных ремонтных работ»
Код прибора в ремонте | Код прибора | Код мастера |
Название прибора | Код мастера | Фамилия мастера |
Тип прибора | ФИО владельца прибора | Имя мастера |
Дата производства | Дата приема в ремонт | Отчество мастера |
Вид поломки | Разряд мастера | |
Стоимость ремонта | Дата приема на работу | |
код ремонта |
Вариант 3. БД «Продажа цветов»
|
Код цветка | Код цветка | Код продавца |
Название цветка | Дата продажи | Фамилия |
Сорт цветка | Цена продажи | Имя |
Средняя высота | Код продавца | Отчество |
Тип листа | Код продажи | Разряд |
Цветущий | Оклад | |
Дополнительные сведения | Дата приема на работу |
Вариант 4. БД «Поступление лекарственных средств»
Код лекарства | Код лекарства | Код поставщика |
Название лекарства | Код поставщика | Сокращенное название |
Показания к применению | Дата поставки | Полное название |
Единица измерения | Цена за единицу | Юридический адрес |
Количество в упаковке | Количество | Телефон |
Название производителя | Код поступления | ФИО руководителя |
Вариант 5. БД «Списание оборудования»
Код оборудования | Код оборудования | Код сотрудника |
Название оборудования | Причина списания | Фамилия |
Тип оборудования | Дата списания | Имя |
Дата поступления | Код сотрудника | Отчество |
ФИО ответственного | Код списания | Должность |
Место установки | Подразделение | |
Дата приема на работу |
Вариант 6. БД «Поваренная книга»
Код блюда | Код блюда | Код продукта |
Тип блюда | Код продукта | Название продукта |
Вес блюда | Объем продукта | Ед измерения |
Порядок приготовления | ||
Количество калорий | ||
Количество углеводов |
Вариант 7. БД «Регистрация входящей документации»
Код регистратора | Код документа | Код организации-отправителя |
Фамилия | Номер документа | Сокращенное название |
Имя | Дата регистрации | Полное название |
Отчество | Краткое содержание документа | Юридический адрес |
Должность | Тип документа | Телефон |
Дата приема на работу | Код организации-отправителя | ФИО руководителя |
Код регистратора |
Вариант 8. БД «Увольнение сотрудника»
Код сотрудника | Код документа | Код статьи увольнения |
Фамилия | Номер документа | Название статьи увольнения |
Имя | Дата регистрации | Причина увольнения |
Отчество | Дата увольнения | Номер статьи увольнения |
Должность | Код статьи увольнения | Номер пункта/подпункта увольнения |
Подразделение | Код сотрудника | |
Дата приема на работу | Денежная компенсация |
Вариант 9. БД «Приказ на отпуск»
Код сотрудника | Код документа | Код отпуска |
Фамилия | Номер документа | Тип отпуска |
Имя | Дата регистрации | Оплата отпуска |
Отчество | Дата начала отпуска | Льготы по опуску |
Должность | Дата окончания отпуска | |
Подразделение | Код сотрудника | |
Дата приема на работу | Код отпуска |
Вариант 10. БД «Регистрация выходящей документации»
Код отправителя | Код документа | Код организации-получателя |
Фамилия | Номер документа | Сокращенное название |
Имя | Дата регистрации | Полное название |
Отчество | Краткое содержание документа | Юридический адрес |
Должность | Тип документа | Телефон |
Дата приема на работу | Код организации-получателя | ФИО руководителя |
Код отправителя |
Вариант 11. БД «Назначение на должность»
Код сотрудника | Код документа | Код должности |
Фамилия | Номер документа | Название должности |
Имя | Дата регистрации | Льготы по должности |
Отчество | Дата назначения | Требования к квалификации |
Дата приема на работу | Код сотрудника | |
Дата рождения | Код должности | |
Пол |
Вариант 12. БД «Выдача оборудования в прокат»
Код клиента | Код выдачи | Код оборудования |
Фамилия | Номер документа | Название оборудования |
Имя | Дата начала проката | Тип оборудования |
Отчество | Дата окончания проката | Дата поступления в прокат |
Адрес | Код оборудования | |
Телефон | Код клиента | |
Серия и номер паспорта | Стоимость |
Вариант 13. БД «Списание оборудования из проката»
Код оборудования | Код оборудования | Код сотрудника |
Название оборудования | Причина списания | Фамилия |
Тип оборудования | Дата списания | Имя |
Дата поступления в прокат | Код сотрудника | Отчество |
Номер документа | Должность | |
Дата регистрации | Дата приема на работу | |
Код списания |
Вариант 14. БД «Прием цветов в магазин»
Код цветка | Код цветка | Код поставщика |
Название цветка | Дата поступления | Сокращенное название |
Сорт цветка | Цена за единицу | Полное название |
Средняя высота | Код поставщика | Юридический адрес |
Тип листа | Код поступления | Телефон |
Цветущий | Количество | ФИО руководителя |
Дополнительные сведения |
Вариант 15. БД «Регистрация клиентов гостиницы»
Код номера | Код регистрации | Код клиента |
Тип номера | Код номера | Фамилия |
Перечень удобств | Дата заезда | Имя |
Цена за сутки | Дата выезда | Отчество |
Стоимость | Адрес | |
Код клиента | Телефон | |
Серия и номер паспорта |
Вариант 16. БД «Возврат оборудования в службу проката»
Код клиента | Код возврата | Код оборудования |
Фамилия | Номер документа | Название оборудования |
Имя | Дата возврата | Тип оборудования |
Отчество | Состояние оборудования | Дата поступления в прокат |
Адрес | Код оборудования | |
Телефон | Код клиента | |
Серия и номер паспорта | Штраф |
Вариант 17. БД «Учет материальных ценностей на предприятии»
Код ценности | Код постановки на учет | Код материально ответственного |
Название ценности | Код ценности | Фамилия |
Тип ценности | Код материально ответственного | Имя |
Закупочная стоимость | Дата постановки на учет | Отчество |
Срок гарантии | Место нахождения ценности | Должность |
Дата начала гарантии | Дата приема на работу | |
Подразделение |
Вариант 18. БД «Состав ремонтных работ»
Код ремонтной работы | Код ремонтной работы | Код мастера |
Код этапа работы | Код мастера | Фамилия мастера |
Название этапа работы | Стоимость ремонта | Имя мастера |
Стоимость этапа | Количество дней ремонта | Отчество мастера |
Название ремонтной работы | Разряд мастера | |
Дата приема на работу |
Вариант 19. БД «Продажа лекарственных средств»
Код лекарства | Номер чека | Номер чека |
Название лекарства | Цена за единицу | Дата продажи |
Показания к применению | Количество | Сумма |
Единица измерения | Код лекарства | ФИО кассира |
Количество в упаковке | Код записи в чеках | |
Название производителя |
Вариант 20. БД «Учет исполнения по входящей документации»
Код исполнителя | Код документа | Код документа |
Фамилия | Дата назначения на исполнения | Номер документа |
Имя | Срок выполнения в днях | Дата регистрации |
Отчество | Тип результата | Краткое содержание документа |
Должность | Код исполнителя | Тип документа |
Подразделение | Факт исполнения | Организация-отправитель |
Дата приема на работу | Код исполнителя |