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