Создадим несколько простых запросов на выборку данных. Для выполнения запросов (извлечения строк из одной или нескольких таблиц БД) используется оператор SELECT. Результатом запроса всегда является таблица. Результаты запроса могут быть использованы для создания новой таблицы.
Создадим простой запрос на выборку к таблице Student, который выводит максимальный и минимальный балл аттестата (рис. 26):
Рис. 26. Простой запрос на выборку к таблице Student
Создадим простой запрос на выборку к таблице Registration (рис. 27), который выводит все специальности абитуриентов:
Рис. 27. Простой запрос на выборку к таблице Registration
Создадим многотабличный запрос на выборку, результатом которого является таблица, в которой указаны все абитуриенты, поступившие на специальность «ИВТ» с количеством баллов по аттестату ЕГЭ больше 200 (рис. 28):
Рис. 28. Многотабличный запрос
Создадим запрос на выборку с вложенным запросом, выводящим абитуриентов, количество баллов которых превысило среднее значение (рис. 29):
Рис. 29. Запрос на выборку с вложенным запросом
Создадим вертикальное представление list_student_view, которое выводит ФИО абитуриента и его факультет (рис. 30):
Рис. 30. Вертикальное представление
Создадим запрос к представлению, который выводит имена абитуриентов из факультета «ФИТиКС» (рис. 31):
Рис. 31. Запрос к представлению
Создадим представление list_enterprise_view, отображающее ФИО абитуриента, название предприятия, телефон (рис. 32):
Рис. 32. Представление list_enterprise_view
Создадим хранимые процедуры для работы с таблицей Certificate_stud (выборка, вставка, модификация и удаление данных).
Выборка данных (процедура Certificate_Select) рис. 33:
Рис. 33. Выборка данных Certificate_select
Рис. 34. Вызов процедуры Certificate_select
2. Вставка данных (Certificate_Insert) рис.35:
Рис. 35. Вставка данных Certificate_Insert
Рис. 36. Выполнение процедуры Certificate_Insert
Рис. 37. Результат процедуры Certificate_Insert
3. Модификация данных (Certificate_update) рис. 38:
Рис. 38. Модификация данных Certificate_Update
Рис. 39. Выполнение процедуры Certificate_Update
Рис. 40. Результат процедуры Certificate_Update
4. Удаление данных (Certificate_Delete) рис. 41:
Рис. 41. Удаление данных Certificate_Delete
Рис. 42. Выполнение процедуры Certificate_Delete
Рис. 43. Результат процедуры Certificate_Delete
Получим список абитуриентов (рис. 44). Задача решается путем использования простого оператора Select, однако никакие дальнейшие действия с полями результирующего набора невозможны.
Рис. 44. Список абитуриентов
Если использовать курсор, то можно проверять содержимое записей, а также выполнять различные операции с использованием содержимого полей.
Создадим курсор, который выводит всех абитуриентов, которые имеют средний балл аттестата больше 4.5 (рис. 45):
Рис. 45. Курсор, который выводит всех абитуриентов, которые имеют средний балл аттестата больше 4.5.
Создадим хранимую процедуру MYPROC с использованием курсора, которая выводит всех абитуриентов, с минимальным указанным средним баллом аттестата (рис. 46):
Рис. 46. Хранимая процедура MYPROC
Рис. 47. Результат выполнения MYPROC
Решим задачу добавления в таблицу с использованием неявных транзакций. Первые 2 вставки находились в неявной транзакции и откатились командой ROLLBACK:
Рис. 48. Неявная транзакция
Создадим для базы данных Student_trigger DML-триггер, который не допускает, чтобы абитуриенты не были допущены до приёмной комиссии со средним баллом аттестата ниже 3.5 (рис. 49):
Рис. 49. Создание триггера Student_trigger
Результат выполнения триггера отображен на рисунке 50:
Рис. 50. Результат выполнения Student_trigger
Создадим для базы данных certificate_trigger DML-триггер, который не допускает добавление в базу абитуриентов, у которых количество баллов ЕГЭ меньше 170 (рис. 51):
Рис. 51. Создание триггера Certificate_trigger
Результат выполнения триггера отображен на рисунке 52:
Рис. 52. Результат выполнения Certificate_trigger
Результатом выполнения лабораторных работ является ознакомление со средой разработки Oracle SQL Developer и его особенностями в разных базах данных.
В ходе выполнения были получены навыки составления запросов, создания триггеров, хранимых процедур, курсоров и представлений. Поставленные задачи выполнены полностью.