An open API service indexing awesome lists of open source software.

https://github.com/sakateka/pl-sql-course


https://github.com/sakateka/pl-sql-course

plsql sql

Last synced: 7 months ago
JSON representation

Awesome Lists containing this project

README

          

# pl-sql-course

## lab1
1. Напишите запрос к таблице Покупателей, чей вывод может включить всех покупателей, причем с оценкой выше 100, если они не находятся в Лондоне
2. Напишите запрос, который может вывести всех покупателей, чьи города начинаются с буквы, попадающей в  диапазон от C до R.
3. Напишите запрос, который сосчитал бы сумму всех заказов для продавцов с номерами меньше 1003.
4. Напишите запрос, который выбрал бы самый ранний заказ для каждого продавца с сортировкой по убыванию имен продавцов.
5. Создайте представление на основе запроса из задания 1 и, используя представление, выведите данные о покупателях с рейтингом 100.
## lab2
1. Напишите запрос, который вывел бы для каждого заказа его номер, стоимость и имя заказчика. Данные вывести для заказчиков, размещенных в San Jose и в Barcelona.
2. Напишите запрос, который выводит имена и города всех продавцов, у которых процент комиссионных больше, чем у Serresa, используя подзапрос.
3. Выведите последние два по алфавиту покупателя и все их заказы.
4. Используя команду CREATE TABLE … AS SELECT, создайте таблицу для хранения данных, формируемых представлением из задания 5 лабораторной работы № 1. Выведите содержимое таблицы.
## lab3
1. Создать таблицу для хранения данных о курортах. Таблица должна содержать поле для уникального номера, названия курорта, количества туров в год.
2. Напишите команды для вставки в таблицу 5-7 записей о курортах. Создайте последовательность и используйте ее в командах вставки для заполнения поля уникального номера.
3. Напишите две команды изменения данных: одну - для изменения названия курорта с самым большим номером, вторую - для увеличения вдвое количества туров курорта с самым маленьким номером. После этих двух команд напишите команду подтверждения транзакции.
4. Напишите команду удаления строк с данными о курортах с нечётными номерами.
5. Напишите команду отмены транзакции, а затем повторите команду удаления (см. п.4), но для чётных номеров. Подтвердите транзакцию.
## lab4
1. Составить и выполнить программу PL/SQL, которая вычисляет квадраты первых пяти положительных чисел, кратных 4, используя цикл For, и выводит результаты.
2. Составить и выполнить программу PL/SQL, которая выводит сумму (цифрами) оплаты учебы за семестр в рублях. Слово «рубль» должно склоняться в соответствии с правилами русского языка. Для определения используйте оператор IF..ELSIF....
3. Составить и выполнить программу PL/SQL, которая считывает из базы данных среднюю величину всех заказов после 03 января, и выводит результат.
4. Составить и выполнить программу PL/SQL, которая, используя SELECT ... INTO ..., считывает из базы данных суммы всех заказов после 03 января, и выводит результат. Добавить в программу раздел Exception с обработчиком OTHERS, в котором определяется вид ошибки и выводится сообщения об этой ошибке.
5. Составить и выполнить программу PL/SQL, которая, используя курсор, считывает из базы данных имена покупателей из Рима и выводит результат.
## lab5
1. Создать пакет, в который поместить функцию, которая возвращает суммарную длину двух строк, заданных в качестве аргументов. Вызвать процедуру пакета из безымянного блока.
2. Включите в пакет процедуру, которая считывает из базы данных информацию о покупателях из последних N (передать в параметре) по алфавиту городов и их заказах. Вызовите процедуру пакета из безымянного блока.
3. Создать триггер PL/SQL, который регистрирует изменение городов для покупателей с сохранением в журнале имени покупателя, прежнего и нового названия города.
4. Создать триггер PL/SQL, который запускается при вставке, изменении и удалении заказов. Триггер должен регистрировать тип и время операции и запрещать удаление, если количество заказов в таблице не превышает 10.
## kr
Создать две таблицы, имеющие уникальные поля и первичные ключи. Таблицы должны быть связаны с помощью внешнего ключа.
Занести в таблицы данные о Кинофильмах и Киностудиях. Каждая киностудия может снимать несколько фильмов. Кинофильмы должны иметь номер, наименование и бюджет. Киностудии должны иметь номер, наименование и страну пребывания.

Для одной из таблиц разработать триггер для обеспечения дополнительных действий при изменение данных таблицы (см. свой вариант задания).
Триггер должен регистрировать добавление с указанием пользователя, даты и времени операции.

Создать представление для связанных таблиц, которое позволяет вывести только часть полей и часть строк таблиц.
Создать пакет PL/SQL, содержащий процедуру начального заполнения таблиц данными (по 5-7 записей в таблице) и процедуру очистки таблиц (удаления записей).

Добавить в пакет процедуру (см. свой вариант задания) изменения данных в таблицах. Значения изменяемых данных должны передаваться в процедуру как параметры.
Процедура должна добавлять новую киностудию и ее фильм без указания бюджета; данные о киностудии и фильме должны быть переданы в параметрах процедуры.
Включить в пакет еще одну процедуру, которая, используя представление, выводит киностудии и снимающиеся на них фильмы. Для каждой студии должны выводиться только фильмы с минимальным и максимальным бюджетами.

В процедурах предусмотреть обработку исключений.
Обеспечить подтверждение транзакций при их успешном выполнении и откат - в случае возникновения исключительной ситуации.