https://github.com/sakateka/pl-sql-course
https://github.com/sakateka/pl-sql-course
plsql sql
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/sakateka/pl-sql-course
- Owner: sakateka
- Created: 2018-03-06T06:40:59.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-03-06T06:56:00.000Z (almost 8 years ago)
- Last Synced: 2025-01-20T18:44:24.971Z (about 1 year ago)
- Topics: plsql, sql
- Language: PLSQL
- Size: 11.7 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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 записей в таблице) и процедуру очистки таблиц (удаления записей).
Добавить в пакет процедуру (см. свой вариант задания) изменения данных в таблицах. Значения изменяемых данных должны передаваться в процедуру как параметры.
Процедура должна добавлять новую киностудию и ее фильм без указания бюджета; данные о киностудии и фильме должны быть переданы в параметрах процедуры.
Включить в пакет еще одну процедуру, которая, используя представление, выводит киностудии и снимающиеся на них фильмы. Для каждой студии должны выводиться только фильмы с минимальным и максимальным бюджетами.
В процедурах предусмотреть обработку исключений.
Обеспечить подтверждение транзакций при их успешном выполнении и откат - в случае возникновения исключительной ситуации.