{"id":21053074,"url":"https://github.com/sakateka/pl-sql-course","last_synced_at":"2026-01-30T21:38:24.042Z","repository":{"id":94100511,"uuid":"124033007","full_name":"sakateka/pl-sql-course","owner":"sakateka","description":null,"archived":false,"fork":false,"pushed_at":"2018-03-06T06:56:00.000Z","size":12,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-17T10:05:12.084Z","etag":null,"topics":["plsql","sql"],"latest_commit_sha":null,"homepage":null,"language":"PLSQL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sakateka.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-06T06:40:59.000Z","updated_at":"2022-01-13T13:25:42.000Z","dependencies_parsed_at":"2023-03-11T12:46:10.238Z","dependency_job_id":null,"html_url":"https://github.com/sakateka/pl-sql-course","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sakateka/pl-sql-course","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakateka%2Fpl-sql-course","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakateka%2Fpl-sql-course/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakateka%2Fpl-sql-course/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakateka%2Fpl-sql-course/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sakateka","download_url":"https://codeload.github.com/sakateka/pl-sql-course/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakateka%2Fpl-sql-course/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28919759,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T20:25:28.696Z","status":"ssl_error","status_checked_at":"2026-01-30T20:25:13.426Z","response_time":66,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["plsql","sql"],"created_at":"2024-11-19T16:03:17.676Z","updated_at":"2026-01-30T21:38:23.991Z","avatar_url":"https://github.com/sakateka.png","language":"PLSQL","readme":"# pl-sql-course\n\n## lab1\n  1. Напишите запрос к таблице Покупателей, чей вывод может включить всех покупателей, причем с оценкой выше 100, если они не находятся в Лондоне\n  2. Напишите запрос, который может вывести всех покупателей, чьи города начинаются с буквы, попадающей в  диапазон от C до R.\n  3. Напишите запрос, который сосчитал бы сумму всех заказов для продавцов с номерами меньше 1003.\n  4. Напишите запрос, который выбрал бы самый ранний заказ для каждого продавца с сортировкой по убыванию имен продавцов.\n  5. Создайте представление на основе запроса из задания 1 и, используя представление, выведите данные о покупателях с рейтингом 100.\n## lab2\n  1. Напишите запрос, который вывел бы для каждого заказа его номер, стоимость и имя заказчика. Данные вывести для заказчиков, размещенных в San Jose и в Barcelona.\n  2. Напишите запрос, который выводит имена и города всех продавцов, у которых процент комиссионных больше, чем у Serresa, используя подзапрос.\n  3. Выведите последние два по алфавиту покупателя и все их заказы.\n  4. Используя команду CREATE TABLE … AS SELECT, создайте таблицу для хранения данных, формируемых представлением из задания 5 лабораторной работы № 1. Выведите содержимое таблицы.\n## lab3\n  1. Создать таблицу для хранения данных о курортах. Таблица должна содержать поле для уникального номера, названия курорта, количества туров в год.\n  2. Напишите команды для вставки в таблицу 5-7 записей о курортах. Создайте последовательность и используйте ее в командах вставки для заполнения поля уникального номера.\n  3. Напишите две команды изменения данных: одну - для изменения названия курорта с самым большим номером, вторую - для увеличения вдвое количества туров курорта с самым маленьким номером. После этих двух команд напишите команду подтверждения транзакции.\n  4. Напишите команду удаления строк с данными о курортах с нечётными номерами.\n  5. Напишите команду отмены транзакции, а затем повторите команду удаления (см. п.4), но для чётных номеров. Подтвердите транзакцию.\n## lab4\n  1. Составить и выполнить программу PL/SQL, которая вычисляет квадраты первых пяти положительных чисел, кратных 4, используя цикл For, и выводит результаты.\n  2. Составить и выполнить программу PL/SQL, которая выводит сумму (цифрами) оплаты учебы за семестр в рублях. Слово «рубль» должно склоняться в соответствии с правилами русского языка. Для определения используйте оператор IF..ELSIF....\n  3. Составить и выполнить программу PL/SQL, которая считывает из базы данных среднюю величину всех заказов после 03 января, и выводит результат.\n  4. Составить и выполнить программу PL/SQL, которая, используя SELECT ... INTO ..., считывает из базы данных суммы всех заказов после 03 января, и выводит результат. Добавить в программу раздел Exception с обработчиком OTHERS, в котором определяется вид ошибки и выводится сообщения об этой ошибке. \n  5. Составить и выполнить программу PL/SQL, которая, используя курсор, считывает из базы данных имена покупателей из Рима и выводит результат.\n## lab5\n  1. Создать пакет, в который поместить функцию, которая возвращает суммарную длину двух строк, заданных в качестве аргументов. Вызвать процедуру пакета из безымянного блока.\n  2.  Включите в пакет процедуру, которая считывает из базы данных информацию о покупателях из последних N (передать в параметре) по алфавиту городов и их заказах. Вызовите процедуру пакета из безымянного блока.\n  3. Создать триггер PL/SQL, который регистрирует изменение городов для покупателей с сохранением в журнале имени покупателя, прежнего и нового названия города.\n  4. Создать триггер PL/SQL, который запускается при вставке, изменении и удалении заказов. Триггер должен регистрировать тип и время операции и запрещать удаление, если количество заказов в таблице не превышает 10.\n## kr\nСоздать две таблицы, имеющие уникальные поля и первичные ключи. Таблицы должны быть связаны с помощью внешнего ключа.\nЗанести в таблицы данные о Кинофильмах и Киностудиях. Каждая киностудия может снимать несколько фильмов. Кинофильмы должны иметь номер, наименование и бюджет. Киностудии должны иметь номер, наименование и страну пребывания.\n\nДля одной из таблиц разработать триггер для обеспечения дополнительных действий при изменение данных таблицы (см. свой вариант задания). \nТриггер должен регистрировать добавление с указанием пользователя, даты и времени операции. \n\nСоздать представление для связанных таблиц, которое позволяет вывести только часть полей и часть строк таблиц.\nСоздать пакет PL/SQL, содержащий процедуру начального заполнения таблиц данными (по 5-7 записей в таблице) и процедуру очистки таблиц (удаления записей). \n\nДобавить в пакет процедуру (см. свой вариант задания) изменения данных в таблицах. Значения изменяемых данных должны передаваться в процедуру как параметры. \nПроцедура должна добавлять новую киностудию и ее фильм без указания бюджета; данные о киностудии и фильме должны быть переданы в параметрах процедуры. \nВключить в пакет еще одну процедуру, которая, используя представление, выводит киностудии и снимающиеся на них фильмы. Для каждой студии должны выводиться только фильмы с минимальным и максимальным бюджетами. \n\nВ процедурах предусмотреть обработку исключений.\nОбеспечить подтверждение транзакций при их успешном выполнении и откат - в случае возникновения исключительной ситуации.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsakateka%2Fpl-sql-course","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsakateka%2Fpl-sql-course","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsakateka%2Fpl-sql-course/lists"}