Файл: Дисциплина мдк. 02. 02 Технология разработки и защиты баз данных Преподаватель.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.12.2023
Просмотров: 17
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Дисциплина: МДК.02.02 Технология разработки и защиты баз данных
Преподаватель: Бондаренко Д.Р.
Курс: 3
Группа: 1ПКС-20
Специальность: Программирование в компьютерных системах
Дата: 27.04.2023
Время проведения:
Вид занятия практическое
Интернет-ресурсы:
https://rykovodstvo.ru/exspl/106817/index.html?page=14
ЗАДАНИЕ: Составить отчет о проделанной работе и ответить на вопросы.
Лабораторная работа №23
Тема: Внесение изменений в базу данных
Цель: Научиться вносить изменения в базу данных, используя команды INSERT, UPDATE, DELETE.
Методические рекомендации.
Подзапросы в операторе INSERT
Подзапросы могут использоваться и с операторами языка манипуляций данными (DML). Первым из таких операторов мы рассмотрим оператор INSERT. Оператор INSERT использует данные, возвращаемые подзапросом, для помещения их в другую таблицу. Избранные в подзапросе данные можно модифицировать с помощью символьных или числовых функций, а также функций дат и времени.
Базовый синтаксис соответствующего оператора должен быть следующим.
INSERT INTO имя_таблицы [(столбец1 [, столбец2])] SELECT [* | столбец1 [, столбец2]]
FROM таблица1 [, таблица2]
[WHERE значение ОПЕРАЦИЯ значение]
Пример использования оператора INSERT с подзапросом.
INSERT INTO RICH_EMPLOYEES
SELECT E.EMP_ID, E.LAST_NAME, E.FIRST_NAME EP.PAY_RATE FROM EMPLOYEE_TBL E, EMPLOYEE_PAY_TBL EP
WHERE E.EMP_ID = EP.EMP_ID AND EP.PAY_RATE> (SELECT PAY_RATE
FROM EMPLOYEE_PAY_TBL WHERE E.EMP_ID = '220984332');
2 строки созданы.
Этот оператор INSERT вставляет значения EMP_ID, LAST_NAME, FIRST_NAME и PAY_RATE в таблицу RICH_EMPLOYEES для всех служащих, норма оплаты труда которых превышает норму оплаты труда служащего с табельным номером 220984332.
Подзапросы в операторе UPDATE
Подзапросы можно использовать в операторе UPDATE. С помощью оператора
UPDATE с подзапросом можно обновлять данные как одного, так и нескольких столбцов сразу.
Базовый синтаксис оператора следующий.
UPDATE таблица
SET имя_столбца [, имя_столбца] =
(SELECT имя_столбца [, имя_столбца]
FROM таблица
[WHERE])
Рассмотрим примеры, разъясняющие использование оператора UPDATE с подзапросом. Сначала рассмотрим запрос, возвращающий табельные номера служащих из Индианаполиса.
SELECT EMP_ID FROM EMPLOYEE_TBL
WHERE CITY = 'INDIANAPOLIS';
Этот запрос будет использован как подзапрос в следующем операторе UPDATE. Вот этот оператор
UPDATE с подзапросом.
UPDATE EMPLOYEE_PAY_TBL
SET PAY_RATE = PAY_RATE * 1.1 WHERE EMP_ID IN (SELECT EMP_ID
FROM EMPLOYEE_TBL
WHERE CITY = 'INDIANAPOLIS');
4 строки обновленные.
Здесь следует обратить внимание на то, что подзапрос возвращает несколько строк данных. Учитывая то, что ожидается получить от подзапроса несколько строк, используется ключевое слово IN, что позволяет сравнить данное значение со списком значений. При использовании для сравнения знака равенства было бы возвращено сообщение об ошибке.
Подзапросы в операторе DELETE
Подзапросы можно использовать в операторе DELETE. Базовый синтаксис оператора следующий.
DELETE FROM имя_таблицы [WHERE ОПЕРАЦИЯ [значение] (SELECT имя_столбца
FROM имя_таблицы
[WHERE])
В следующем примере из таблицы EMPLOYEE_PAY_TBL удаляется запись с информацией о служащего по имени BRANDON GLASS. Табельный номер этого служащего не известен, но можно создать подзапрос, который найдет этот номер в таблице EMPLOYEE_TBL по значениям столбцов с именами (FIRST_NAME) и фамилиями (LAST_NAME) служащих.
DELETE FROM EMPLOYEE_PAY_TBL WHERE EMP_ID = (SELECT EMP_ID
FROM EMPLOYEE_PAY_TBL
WHERE LAST_NAME = 'GLASS "AND FIRST_NAME =' BRAHDON ');
1 строка обновлен.
Не забывайте использовать в операторах UPDATE и DELETE ключевое слово WHERE. Если последнее не использовать, будут обновлены или удалены данные всех столбцов.
Индивидуальное задание
Вариант 1
Составьте запросы, используя таблицы PREDMET, STUDENTS, TEACHERS, USP
1. Вставьте информацию о среднем балле каждого студента, информацию вывести в виде новой таблицы.
2. Удалите информацию о преподавателях, в фамилии которых есть буква «а».
3. Удалите информацию о предметах, которые изучаются на первом курсе.
4. Удалите информацию о студентах, получивших оценку 3 по любому предмету.
5. Измените стипендию студенту на 185 с кодом 3415.
6. Назначьте стипендию 250 руб. студентам не получающим стипендию.
7. Увеличьте размер стипендии на 50% студентам, у которых есть оценки не менее
, чем по двум предметам.
Вариант 2
Составьте запросы, используя таблицы PREDMET, STUDENTS, TEACHERS, USP
1. Вставьте информацию о среднем количестве часов по каждому предмету, информацию вывести в виде новой таблицы.
2. Удалите информацию о преподавателях, в фамилии которых есть буква «р».
3. Удалите информацию о предметах, изучаемых на втором курсе.
4. Удалите информацию о студентах, получивших оценку 4 по любому предмету.
5. Измените стипендию студенту на 0 с кодом 3415 и 3413.
6. Назначьте стипендию 400 руб. студентам которые не получают стипендию.
7. Увеличьте размер стипендии на 15% студентам, у которых есть 5 из любого предмета.
Вариант 3
Составьте запросы, используя таблицы PREDMET, STUDENTS, TEACHERS, USP
1. Вставьте информацию о среднем балле каждого студента, информацию вывести в виде новой таблицы.
2. Удалите информацию о преподавателях, в фамилии которых есть буква «а».
3. Удалите информацию о предметах, которые не изучаются на первом курсе.
4. Удалите информацию о студентах, получивших оценку 5 по любому предмету.
5. Измените стипендию студенту на 185 с кодом 3412.
6. Назначьте стипендию 250 руб. студентам не получающим стипендию.
7. Увеличьте размер стипендии на 5% студентам, у которых есть оценки не менее, чем по трем предметам.