{"id":21391401,"url":"https://github.com/radmitr/sql-oracle-certification","last_synced_at":"2026-02-03T20:43:36.142Z","repository":{"id":203371259,"uuid":"654752175","full_name":"radmitr/sql-oracle-certification","owner":"radmitr","description":"Udemy course \"SQL for beginners: from scratch to Oracle certificate\" by Zaur Tregulov","archived":false,"fork":false,"pushed_at":"2023-12-17T19:23:26.000Z","size":87123,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-16T13:24:48.514Z","etag":null,"topics":["oracle-sql","sql"],"latest_commit_sha":null,"homepage":"","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/radmitr.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":"2023-06-16T21:37:58.000Z","updated_at":"2024-08-08T20:15:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"d52c46bb-9e97-41d7-8fe6-8efeb8b0307a","html_url":"https://github.com/radmitr/sql-oracle-certification","commit_stats":null,"previous_names":["radmitr/sql-oracle-certification"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/radmitr/sql-oracle-certification","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radmitr%2Fsql-oracle-certification","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radmitr%2Fsql-oracle-certification/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radmitr%2Fsql-oracle-certification/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radmitr%2Fsql-oracle-certification/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/radmitr","download_url":"https://codeload.github.com/radmitr/sql-oracle-certification/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radmitr%2Fsql-oracle-certification/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29056753,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T20:13:53.544Z","status":"ssl_error","status_checked_at":"2026-02-03T20:13:40.507Z","response_time":96,"last_error":"SSL_read: 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":["oracle-sql","sql"],"created_at":"2024-11-22T13:26:21.877Z","updated_at":"2026-02-03T20:43:36.124Z","avatar_url":"https://github.com/radmitr.png","language":"PLSQL","readme":"# Курс \"SQL для начинающих: с нуля до сертификата Oracle\" от Заура Трегулова на Udemy\n\n\u003chttps://www.udemy.com/course/sql-oracle-certification\u003e\n\n**SQL, Oracle SQL**  \nDML, DDL, TCL, DCL commands, functions, objects  \nSQL\\*Plus, Oracle SQL Developer\n\n\u003cdetails\u003e\n    \u003csummary\u003e\n        \u003cb\u003eПрограмма курса\u003c/b\u003e\n    \u003c/summary\u003e\n\n1. **Введение в SQL**  \n    1.1. Знакомство с курсом  \n    1.2. Скачивание и установка Data Base  \n    1.3. Базы данных, таблицы, нормализация  \n    1.4. Знакомство с HR схемой  \n    1.5. SQL команды  \n    1.6. Типы данных и понятие NULL  \n    1.7. Команда DESCRIBE  \n    1.8. [Домашнее задание](#homework-1)  \n\n2. **Знакомство с SELECT**  \n    2.1. Наш первый SELECT  \n    2.2. Оператор DISTINCT  \n    2.3. Некоторые правила и советы  \n    2.4. Expressions в SELECT LIST часть 1  \n    2.5. Expressions в SELECT LIST часть 2, ALIAS  \n    2.6. Таблица DUAL, Оператор q  \n    2.7. [Домашнее задание](#homework-2)  \n\n3. **Selection, операторы, ORDER BY**  \n    3.1. Selection, WHERE  \n    3.2. Математические операторы сравнения  \n    3.3. BETWEEN, IN, IS NULL  \n    3.4. LIKE  \n    3.5. AND  \n    3.6. OR  \n    3.7. NOT  \n    3.8. Приоритетность операторов  \n    3.9. ORDER BY часть 1  \n    3.10. ORDER BY часть 2  \n    3.11. [Домашнее задание](#homework-3)  \n\n4. **SINGLE-ROW функции**  \n    4.1. Разновидности функций  \n    4.2. LOWER  \n    4.3. UPPER  \n    4.4. INITCAP  \n    4.5. CONCAT  \n    4.6. LENGTH  \n    4.7. LPAD и RPAD  \n    4.8. TRIM  \n    4.9. INSTR  \n    4.10. SUBSTR  \n    4.11. REPLACE  \n    4.12. ROUND (для числа)  \n    4.13. TRUNC (для числа)  \n    4.14. MOD  \n    4.15. Введение в DATE функции  \n    4.16. SYSDATE  \n    4.17. MONTHS_BETWEEN  \n    4.18. ADD_MONTHS  \n    4.19. NEXT_DAY  \n    4.20. LAST_DAY  \n    4.21. ROUND (для даты)  \n    4.22. TRUNC (для даты)  \n    4.23. [Домашнее задание](#homework-4)  \n\n5. **CONVERSION, GENERAL и CONDITIONAL функции**  \n    5.1. Введение в CONVERSION функции  \n    5.2. TO_CHAR (для числа)  \n    5.3. TO_CHAR (для даты)  \n    5.4. TO_DATE  \n    5.5. TO_NUMBER  \n    5.6. Nested (вложенные) single-row функции  \n    5.7. NVL  \n    5.8. NVL2  \n    5.9. NULLIF  \n    5.10. COALESCE  \n    5.11. DECODE  \n    5.12. Simple CASE  \n    5.13. Searched CASE  \n    5.14. [Домашнее задание](#homework-5)  \n\n6. **GROUP функции, ORDER BY, HAVING**  \n    6.1. Введение в GROUP функции  \n    6.2. COUNT  \n    6.3. SUM  \n    6.4. AVG  \n    6.5. MAX и MIN  \n    6.6. Введение в GROUP BY  \n    6.7. GROUP BY часть 1  \n    6.8. GROUP BY часть 2  \n    6.9. HAVING  \n    6.10. Nested (вложенные) group функции  \n    6.11. [Домашнее задание](#homework-6)  \n\n7. **JOIN (объединение)**  \n    7.1. Введение в JOIN  \n    7.2. NATURAL JOIN  \n    7.3. JOIN USING  \n    7.4. JOIN ON  \n    7.5. Примеры на объединение больше 2-х таблиц  \n    7.6. NONEQUIJOIN  \n    7.7. SELF JOIN  \n    7.8. Введение в OUTER JOIN  \n    7.9. LEFT OUTER JOIN  \n    7.10. RIGHT OUTER JOIN  \n    7.11. FULL OUTER JOIN  \n    7.12. CROSS JOIN  \n    7.13. Oracle JOIN синтаксис  \n    7.14. [Домашнее задание](#homework-7)  \n    \n8. **SUBQUERY (подзапрос)**  \n    8.1. Введение в SUBQUERY  \n    8.2. SINGLE-ROW SUBQUERY  \n    8.3. MULTIPLE-ROW SUBQUERY  \n    8.4. CORRELATED SUBQUERY  \n    8.5. Примеры на подзапросы  \n    8.6. [Домашнее задание](#homework-8)  \n\n9. **SET операторы (операторы множеств)**  \n    9.1. Введение в SET операторы  \n    9.2. UNION ALL  \n    9.3. UNION  \n    9.4. INTERSECT  \n    9.5. MINUS  \n    9.6. Примеры на SET операторы  \n    9.7. [Домашнее задание](#homework-9)  \n    \n10. **DML и TCL команды**  \n    10.1. Введение в DML  \n    10.2. Простой INSERT  \n    10.3. INSERT с использованием функций  \n    10.4. INSERT с использованием SUBQUERY  \n    10.5. INSERT в несколько таблиц  \n    10.6. Ошибки при использовании DML  \n    10.7. Простой UPDATE  \n    10.8. UPDATE с использованием SUBQUERY  \n    10.9. Простой DELETE  \n    10.10. DELETE с использованием SUBQUERY  \n    10.11. MERGE  \n    10.12. Принципы ACID  \n    10.13. Введение в транзакции  \n    10.14. COMMIT  \n    10.15. ROLLBACK  \n    10.16. SAVEPOINT  \n    10.17. AUTOCOMMIT  \n    10.18. SELECT FOR UPDATE  \n    10.19. [Домашнее задание](#homework-10)  \n    \n11. **DDL часть 1. Работа с таблицами**  \n    11.1. Объекты Базы Данных  \n    11.2. Понятия USER и SCHEMA  \n    11.3. Правила названия объектов и понятие NAMESPACE  \n    11.4. Типы данных (дополнительные)\n    11.5. Простое создание таблиц CREATE TABLE  \n    11.6. Создание таблиц с использованием SUBQUERY  \n    11.7. Изменение таблиц ALTER TABLE  \n    11.8. Опустошение таблиц TRUNCATE TABLE  \n    11.9. Удаление таблиц DROP TABLE  \n    11.10. [Домашнее задание](#homework-11)  \n    \n12. **DDL часть 2. Понятия CONSTRAINT и INDEX**  \n    12.1. Введение в CONSTRAINT  \n    12.2. UNIQUE CONSTRAINT  \n    12.3. NOT NULL CONSTRAINT  \n    12.4. PRIMARY KEY CONSTRAINT  \n    12.5. FOREIGN KEY CONSTRAINT  \n    12.6. Опции ON DELETE для FOREIGN KEY  \n    12.7. CHECK CONSTRAINT  \n    12.8. Введение в INDEX  \n    12.9. INDEX B-TREE часть 1  \n    12.10. INDEX B-TREE часть 2  \n    12.11. INDEX BITMAP  \n    12.12. [Домашнее задание](#homework-12)  \n    \n13. **DDL и DCL часть 3. VIEW, SYNONYM, SEQUENCE**  \n    13.1. Введение во VIEW  \n    13.2. Simple и Complex VIEW  \n    13.3. Создание CREATE VIEW  \n    13.4. Изменение ALTER VIEW и удаление DROP VIEW  \n    13.5. SYNONYM  \n    13.6. Введение в SEQUENCE  \n    13.7. Работа с SEQUENCE часть 1  \n    13.8. Работа с SEQUENCE часть 2  \n    13.9. [Домашнее задание](#homework-13)  \n    \n14. **Разное**  \n    14.1. SINGLE AMPERSAND SUBSTITUTION (\u0026)\n    14.2. DOUBLE AMPERSAND SUBSTITUTION (\u0026\u0026)\n    14.3. DEFINE и UNDEFINE  \n    14.4. VERIFY  \n    14.5. [Домашнее задание]](#homework-14)  \n    14.6. Регистрация на экзамен \n\n\u003c/details\u003e\n\n----------------------------------------------------\n\n**Что сделано**\n\n- *Изучены основные темы по SQL*\n- *Изучены материалы для сдачи экзамена Oracle SQL 1Z0-071*\n- *Решены все домашине задания*\n- *Создан PDF файл слайдов, с закладками и содержанием*\n\n----------------------------------------------------\n\n## Homework 1\n1. Получите описание таблицы REGIONS, используя её полное имя. \n2. Получите описание таблицы COUNTRIES, используя её полное имя. \n3. Получите описание таблицы JOBS, используя её короткое имя. \n4. Получите описание таблицы LOCATIONS, используя её короткое имя.\n\n[hw_1.sql](./homeworks/hw_1.sql) \n\n## Homework 2\n1. Выведите всю информацию о регионах. \n2. Выведите информацию о имени, id департамента, зарплате и фамилии \nдля всех работников. \n3. Выведите информацию о id работника, электронной почте и дату, \nкоторая была за неделю до трудоустройства для всех работников. \nСтолбец, который будет содержать дату назовите One week before hire \ndate  . \n4. Выведите информацию о работниках с их позициями в формате: \nDonald(SH_CLERK) . Назовите столбец our_employees  . \n5. Выведите список уникальных имён среди работников. \n6. Выведите следующую информацию из таблицы jobs: \n- job_title, \n- выражение в формате: «min = 20080, max = 40000»  \n, где 20080 – это минимальная з/п, а 40000 – максимальная.  \nНазовите этот столбец info. \n- максимальную з/п и назовите столбец max, \n- новую з/п, которая будет называться new_salary и вычисляться по \nформуле: max_salary*2-2000. \n7. Выведите на экран предложение «Peter's dog is very clever», используя \nодну из двух техник работы с одинарными кавычками. \n8. Выведите на экран предложение «Peter's dog is very clever», используя, \nотличную от предыдущего примера, технику работы с одинарными \nкавычками. \n9. Выведите на экран количество минут в одном веке (1 год = 365.25 \nдней). \n\n[hw_2.sql](./homeworks/hw_2.sql)\n\n## Homework 3\n1. Получите список всех сотрудников с именем David. \n2. Получите список всех сотрудников, у которых job_id равен FI_ACCOUNT. \n3. Выведите информацию о имени, фамилии, з/п и номере департамента \nдля сотрудников из 50го департамента с зарплатой, большей 4000. \n4. Получите список всех сотрудников, которые работают или в 20м, или в \n30м департаменте. \n5. Получите список всех сотрудников, у которых вторая и последняя буква \nв имени равна 'a'. \n6. Получите список всех сотрудников из 50го и из 80го департамента, у \nкоторых есть бонус(комиссионные). Отсортируйте строки по email \n(возрастающий порядок), используя его порядковый номер. \n7. Получите список всех сотрудников, у которых в имени содержатся \nминимум 2 буквы 'n'. \n8. Получить список всех сотрудников, у которых длина имени больше 4 \nбукв. Отсортируйте строки по номеру департамента (убывающий \nпорядок) так, чтобы значения “null” были в самом конце. \n9. Получите список всех сотрудников, у которых зарплата находится в \nпромежутке от 3000 до 7000 (включительно), нет бонуса \n(комиссионных) и job_id среди следующих вариантов: PU_CLERK, \nST_MAN, ST_CLERK. \n10. Получите список всех сотрудников у которых в имени содержится \nсимвол '%'. \n11. Выведите информацию о job_id, имене и з/п для работников, рабочий \nid которых больше или равен 120 и  job_id не равен IT_PROG. \nОтсортируйте строки по job_id (возрастающий порядок) и именам \n(убывающий порядок). \n\n[hw_3.sql](./homeworks/hw_3.sql)\n\n## Homework 4\n1. Получите список всех сотрудников, у которых длина имени больше 10 \nбукв. \n2. Получите список всех сотрудников, зарплата которых кратна 1000. \n3. Выведите телефонный номер и первое 3х значное число телефонного \nномера сотрудника, если его номер представлен в формате \nХХХ.ХХХ.ХХХХ   . \n4. Получите список всех сотрудников, у которых последняя буква в имени \nравна 'm' и длина имени больше 5ти. \n5. Выведите дату следующей пятницы. \n6. Получите список всех сотрудников, которые работают в компании \nбольше 12 лет и 6ти месяцев (150 месяцев). \n7. Выведите телефонный номер, заменив в значении PHONE_NUMBER все \n'.' на '-'. \n8. Выведите имя, email, job_id для всех работников в формате: \nSTEVEN sking Ad_Pres \n9. Выведите информацию о имени работника и его з/п, не используя \nсимвол || , в таком виде: Steven24000 \n10. Выведите информацию о дате приёма сотрудника на работу, \nокруглённой дате приёма на работу до месяца и первом дне года \nприёма на работу. \n11. Выведите информацию о имени и фамилии всех работников. Имя \nдолжно состоять из 10 символов и если длина имени меньше 10, то \nдополняйте до 10 символов знаком $. Фамилия должна состоять из 15 \nсимволов и если длина фамилии меньше 15, то перед фамилией \nставьте столько знаков ! сколько необходимо. \n12. Выведите имя сотрудника и позицию второй буквы ‘a’ в его имени. \n13. Выведите на экран текст '!!!HELLO!! MY FRIEND!!!!!!!!'  и тот же текст, но \nбез символа восклицательный знак в начале и конце текста. \n14. Выведите информацию о: \n- з/п работника, \n- з/п умноженной на коэффициент 3.1415 , \n- округлённый до целого значения вариант увеличенной з/п-ты, \n- целое количество тысяч из увеличенной з/п. \n15. Выведите информацию о: \n- дате приёма сотрудника на работу, \n- дате, которая была через пол года, после принятия сотрудника на \nработу, \n- дате последнего дня в месяце принятия сотрудника на работу. \n\n[hw_4.sql](./homeworks/hw_4.sql)\n\n## Homework 5\n1. Используя функции, получите список всех сотрудников у которых в \nимени есть буква 'b' (без учета регистра). \n2. Используя функции, получите список всех сотрудников у которых в \nимени содержатся минимум 2 буквы 'a'. \n3. Получите первое слово из имени департамента, для тех \nдепартаментов, у которых название состоит больше, чем из одного \nслова. \n4. Получите имена сотрудников без первой и последней буквы в имени. \n5. Получите список всех сотрудников, у которых в значении job_id после \nзнака '_' как минимум 3 символа, но при этом это значение после '_' не \nравно 'CLERK'. \n6. Получите список всех сотрудников, которые пришли на работу в \nпервый день любого месяца. \n7. Получите список всех сотрудников, которые пришли на работу в \n2008ом году. \n8. Покажите завтрашнюю дату в формате: \n Tomorrow is Second day of January \n9. Выведите имя сотрудника и дату его прихода на работу в формате: \n21st of June, 2007 \n10. Получите список работников с увеличенными зарплатами на 20%. \nЗарплату показать в формате:     $28,800.00 \n11. Выведите актуальную дату (нынешнюю), + секунда, + минута, + час, + \nдень, + месяц, + год. (Всё это по отдельности прибавляется к \nактуальной дате). \n12. Выведите имя сотрудника, его з/п и новую з/п, которая равна старой \nплюс это значение текста «$12,345.55». \n13. Выведите имя сотрудника, день его трудоустройства, а также \nколичество месяцев между днём его трудоустройства и датой, которую \nнеобходимо получить из текста «SEP, 18:45:00 18 2009». \n14. Выведите имя сотрудника, его з/п, а также полную з/п (salary + \ncommission_pct(%)) в формате: $24,000.00   . \n15. Выведите имя сотрудника, его фамилию, а также выражение «different \nlength», если длина имени не равна длине фамилии или выражение \n«same length», если длина имени равна длине фамилии. Не \nиспользуйте conditional functions. \n16. Выведите имя сотрудника, его комиссионные, а также информацию о \nналичии бонусов к зарплате – есть ли у него комиссионные (Yes/No). \n\n\n17. Выведите имя сотрудника и значение которое его будет \nхарактеризовать: значение комиссионных, если присутствует, если нет, \nто id его менеджера, если и оно отсутствует, то его з/п. \n18. Выведите имя сотрудника, его з/п, а также уровень зарплаты каждого \nсотрудника: Меньше 5000 считается Low level, Больше или равно 5000 \nи меньше 10000 считается Normal level, Больше или равно 10000 \nсчитается High level. \n19. Для каждой страны показать регион, в котором она находится: 1-\nEurope, 2-America, 3-Asia, 4-Africa . Выполнить данное задание, не \nиспользуя функционал JOIN. Используйте DECODE. \n20. Задачу №19 решите используя CASE. \n21. Выведите имя сотрудника, его з/п, а также уровень того, насколько у \nсотрудника хорошие условия :  \n- BAD: з/п меньше 10000 и отсутствие комиссионных; \n- NORMAL: з/п между 10000 и 15000 или, если присутствуют \nкомиссионные; \n- GOOD: з/п больше или равна 15000. \n\n[hw_5.sql](./homeworks/hw_5.sql)\n\n## Homework 6\n1. Получить репорт по department_id с минимальной и максимальной \nзарплатой, с самой ранней и самой поздней датой прихода на работу и \nс количеством сотрудников. Сортировать по количеству сотрудников \n(по убыванию). \n2. Выведите информацию о первой букве имени сотрудника и количество \nимён, которые начинаются с этой буквы. Выводить строки для букв, где \nколичество имён, начинающихся с неё больше 1. Сортировать по \nколичеству. \n3. Выведите id департамента, з/п и количество сотрудников, которые \nработают в одном и том же департаменте и получают одинаковую \nзарплату. \n4. Выведите день недели и количество сотрудников, которых приняли на \nработу в этот день. \n5. Выведите id департаментов, в которых работает больше 30 \nсотрудников и сумма их з/п-т больше 300000. \n6. Из таблицы countries вывести все region_id, для которых сумма всех \nбукв их стран больше 50ти. \n7. Выведите информацию о job_id и округленную среднюю зарплату \nработников для каждого job_id. \n8. Получить список id департаментов, в которых работают сотрудники \nнескольких (\u003e1) job_id. \n9. Выведите информацию о department, job_id, максимальную и \nминимальную з/п для всех сочетаний department_id - job_id, где \nсредняя з/п больше 10000. \n10. Получить список manager_id, у которых средняя зарплата всех его \nподчиненных, не имеющих комиссионные, находится в промежутке от \n6000 до 9000. \n11. Выведите округлённую до тысяч (не тысячных) максимальную зарплату \nсреди всех средних зарплат по департаментам. \n\n[hw_6.sql](./homeworks/hw_6.sql)\n\n## Homework 7\n1. Выведите информацию о регионах и количестве сотрудников в каждом регионе\n2. Выведите детальную информацию о каждом сотруднике: имя, фамилия, название департамента, job_id, адрес, страна и регион\n3. Выведите информацию о имени менеджеров, которые имеют в подчинении больше 6 человек, а также выведите количество сотрудников, которые им подчиняются.\n4. Выведите информацию о названии всех департаментов (department_name) и о количестве работников, если в департаменте работают больше 30 сотрудников. Используйте технологию USING для объединения по id департамента\n5. Выведите название всех департаментов (department_name), в которых нет ни одного сотрудника\n6. Выведите всю информацию о сотрудниках, менеджеры, которых устроились на работу в 2005 году, но при этом сами работники устроились до 2005 года\n7. Выведите название страны и название региона этой страны используя NATURAL JOIN\n8. Выведите имена, фамилии и зарплаты сотрудников, которые получают меньше, чем минимальная зарплата по их специальности + 1000\n9. Выведите уникальные имена и фамилии сотрудников, название стран, в которых они работают, также выведите информацию о сотрудниках, о стран которых нет информации, а также выедите все страны, в которых нет сотрудников компании.\n10. Выведите имена и фамилии всех сотрудников, а также название стран, которые мы получаем при объединении работников со всеми странами без какой-либо логики\n11. Решите задачу №1 с помощью oracle syntax\n12. Решите задачу №5 использую oracle join syntax\n\n[hw_7.sql](./homeworks/hw_7.sql)\n\n## Homework 8\n1. Выведите всю информацию о сотрудниках, с самым длинным именем. \n2. Выведите всю информацию о сотрудниках, с зарплатой большей \nсредней зарплаты всех сотрудников. \n3. Получить город/города, где сотрудники в сумме зарабатывают меньше \nвсего. \n4. Выведите всю информацию о сотрудниках, у которых менеджер \nполучает зарплату больше 15000. \n5. Выведите всю информацию о департаментах, в которых нет ни одного \nсотрудника. \n6. Выведите всю информацию о сотрудниках, которые не являются \nменеджерами. \n7. Выведите всю информацию о менеджерах, которые имеют в \nподчинении больше 6ти сотрудников. \n8. Выведите всю информацию о сотрудниках, которые работают в \nдепартаменте с названием IT   . \n9. Выведите всю информацию о сотрудниках, менеджеры которых \nустроились на работу в 2005ом году, но при это сами работники \nустроились на работу до 2005 года. \n10. Выведите всю информацию  о сотрудниках, менеджеры которых \nустроились на работу в январе любого года, и длина job_title этих \nсотрудников больше 15ти символов. \n\n[hw_8.sql](./homeworks/hw_8.sql)\n\n## Homework 9\n1. Выведите в одном репорте информацию о суммах з/п групп, \nобъединённых по id менеджера, по job_id, по id департамента. Репорт \nдолжен содержать 4 столбца: id менеджера, job_id,  id департамента, \nсуммированная з/п. \n2. Выведите id тех департаментов, где работает менеджер № 100 и не \nработают менеджеры № 145, 201. \n3. Используя SET операторы и не используя логические операторы, \nвыведите уникальную информацию о именах, фамилиях и з/п \nсотрудников, второй символ в именах которых буква «а», и фамилия \nсодержит букву «s» вне зависимости от регистра. Отсортируйте \nрезультат по з/п по убыванию. \n4. Используя SET операторы и не используя логические операторы, \nвыведите информацию о id локаций, почтовом коде и городе для \nлокаций, которые находятся в Италии или Германии. А также для \nлокаций, почтовый код которых содержит цифру «9».  \n5. Используя SET операторы и не используя логические операторы, \nвыведите всю уникальную информацию для стран, длина имён \nкоторых больше 8 символов. А также для стран, которые находятся не в \nевропейском регионе. Столбцы аутпута должны называться id, country, \nregion. Аутпут отсортируйте по названию стран по убывающей. \n\n[hw_9.sql](./homeworks/hw_9.sql)\n\n## Homework 10\n1. Перепишите и запустите данный statemenet для создания таблицы \nlocations2, которая будет содержать такие же столбцы, что и locations: \nCREATE TABLE locations2 AS (SELECT * FROM locations WHERE 1=2); \n2. Добавьте в таблицу locations2 2 строки с информацией о id локации, \nадресе, городе, id страны. Пусть данные строки относятся к стране \nИталия. \n3. Совершите commit. \n4. Добавьте в таблицу locations2 ещё 2 строки, не используя \nперечисления имён столбцов, в которые заносится информация. Пусть \nданные строки относятся к стране Франция. При написании значений, \nгде возможно, используйте функции. \n5. Совершите commit. \n6. Добавьте в таблицу locations2 строки из таблицы locations, в которых \nдлина значения столбца state_province больше 9. \n7. Совершите commit. \n8. Перепишите и запустите данный statemenet для создания таблицы \nlocations4europe, которая будет содержать такие же столбцы, что и \nlocations: \nCREATE TABLE locations4europe AS (SELECT * FROM locations WHERE 1=2); \n9. Одним statement-ом добавьте в таблицу locations2 всю информацию \nдля всех строк из таблицы locations, а в таблицу locations4europe \nдобавьте информацию о id локации, адресе, городе, id страны только \nдля тех строк из таблицы locations, где города находятся в Европе.  \n10. Совершите commit. \n11. В таблице locations2 измените почтовый код на любое значение в тех \nстроках, где сейчас нет информации о почтовом коде. \n12. Совершите rollback. \n13. В таблице locations2 измените почтовый код в тех строках, где сейчас \nнет информации о почтовом коде. Новое значение должно быть кодом \nиз таблицы locations для строки с id 2600. \n14. Совершите commit. \n15. Удалите строки из таблицы locations2, где id страны «IT». \n16. Создайте первый savepoint. \n17. В таблице locations2 измените адрес в тех строках, где id локации \nбольше 2500. Новое значение должно быть «Sezam st. 18» \n18. Создайте второй savepoint. \n19. Удалите строки из таблицы locations2, где адрес равен «Sezam st. 18». \n20. Откатите изменения до первого savepoint. \n21. Совершите commit. \n\n[hw_10.sql](./homeworks/hw_10.sql)\n\n## Homework 11\n1. Создать таблицу friends с помощью subquery так, чтобы она после \nсоздания содержала значения следующих столбцов из таблицы \nemployees: employee_id, first_name, last_name для тех строк, где \nимеются комиссионные. Столбцы в таблице friends должны называться \nid, name, surname  . \n2. Добавить в таблицу friends новый столбец email . \n3. Изменить столбец email так, чтобы его значение по умолчанию было \n«no email». \n4. Проверить добавлением новой строки, работает ли дефолтное \nзначение столбца email. \n5. Изменить название столбца с id на friends_id . \n6. Удалить таблицу friends. \n7. Создать таблицу friends со следующими столбцами: id, name, surname, \nemail, salary, city, birthday. У столбцов salary и birthday должны быть \nзначения по умолчанию. \n8. Добавить 1 строку в таблицу friends со всеми значениями. \n9. Добавить 1 строку в таблицу friends со всеми значениями кроме salary \nи birthday. \n10. Совершить commit. \n11. Удалить столбец salary. \n12. Сделать столбец email неиспользуемым (unused). \n13. Сделать столбец birthday неиспользуемым (unused). \n14. Удалить из таблицы friends неиспользуемые столбцы. \n15. Сделать таблицу friends пригодной только для чтения. \n16. Проверить предыдущее действие любой DML командой. \n17. Опустошить таблицу friends. \n18. Удалить таблицу friends. \n\n[hw_11.sql](./homeworks/hw_11.sql)\n\n## Homework 12\n1. Создать таблицу address со следующими столбцами: id, country, city. \nПри создании таблицы создайте на inline уровне unique constraint с \nименем ad_id_un на столбец id. \n2. Создать таблицу friends со следующими столбцами: id, name, email, \naddress_id, birthday. При создании таблицы создайте на inline уровне \nforeign key constraint на столбец address_id, который ссылается на \nстолбец id из таблицы address, используйте опцию «on delete set null». \nТакже при создании таблицы создайте на table уровне check constraint \nдля проверки того, что длина имени должна быть больше 3-х. \n3. Создайте уникальный индекс на столбец id из таблицы friends. \n4. С помощью функционала «add» команды «alter table» создайте \nconstraint primary key с названием fr_id_pk на столбец id из таблицы \nfriends. \n5. Создайте индекс с названием fr_email_in на столбец email из таблицы \nfriends. \n6. С помощью функционала «modify» команды «alter table» создайте \nconstraint not null с названием fr_email_nn на столбец email из таблицы \nfriends. \n7. Удалите таблицу friends. \n8. Удалите таблицу address. \n\n[hw_12.sql](./homeworks/hw_12.sql)\n\n## Homework 13\n1. Создать таблицу emp1000 с помощью subquery так, чтобы она после \nсоздания содержала значения следующих столбцов из таблицы \nemployees: first_name, last_name, salary, department_id.  \n2. Создать view v1000 на основе select-а, который объединяет таблицы \nemp1000 и departments по столбцу department_id. View должен \nсодержать следующие столбцы: first_name, last_name, salary, \ndepartment_name, city  . \n3. Добавьте в таблицу emp1000 столбец city . \n4. Откомпилируйте view v1000. \n5. Создайте синоним syn1000 для v1000. \n6. Удалите v1000. \n7. Удалите syn1000. \n8. Удалите emp1000. \n9. Создайте последовательность seq1000, которая начинается с 12, \nувеличивается на 4, имеет максимальное значение 200 и цикличность.  \n10. Измените эту последовательность. Удалите максимальное значение и \nцикличность. \n11. Добавьте 2 строки в таблицу employees, используя минимально \nвозможное количество столбцов. Воспользуйтесь \nпоследовательностью seq1000 при добавлении значений в столбец \nemployee_id. \n12. Совершите commit. \n\n[hw_13.sql](./homeworks/hw_13.sql)\n\n## Homework 14\n1. Создать таблицу test200 со следующими столбцами: id, name1, name2, address1, address2. Первый должен быть типа INTEGER, остальные — типа VARCHAR2.\n2. Напишите такой шаблон для изменеия строк, который при каждом запуске будет спрашиать: значение какого столбца меняется, на какое значение меняется и для какого значения id меняется.\n3. Напишите SELECT, в которм требуется вывести всю информацию из таблицы test200 для строк, у которых столбцы name1 и name2 равны одному и тому же значению, а также столбцы address1 и address2 тоже равны одном и тому же значению. Напишите такой шаблон для этого statement'a, который при запуске один раз просит всего два значения: одно для первых двух столбцов, второе — для вторых двух столбцов.\n4. Напишите команды, которые удаляют сессионные значения для наших переменных.\n\n[hw_14.sql](./homeworks/hw_14.sql)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradmitr%2Fsql-oracle-certification","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fradmitr%2Fsql-oracle-certification","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradmitr%2Fsql-oracle-certification/lists"}