Oracle Developer👨🏻‍💻
3.21K subscribers
607 photos
66 videos
2 files
483 links
🔝 канал о разработке в СУБД Oracle:
SQL, PL/SQL, оптимизация, архитектура и многое другое...

Backend-pro.ru - обучение по различным программам, связанных с backend-разработкой для ФЛ и ЮЛ.

Отец-основатель: @denis_dbd Кивилёв Денис
Download Telegram
SQL марафон. Задача 4.

Постановка
Нужно найти отделы с общей зарплатой сотрудников более 50000.
Вывести - ID отдела (department_id).

Сотрудники - таблица employees.

Решения
1️⃣
select department_id
from employees
group by department_id
having sum(salary) > 50000;


2️⃣
select d.department_id
from departments d
where (select sum(salary)
from employees e
where e.department_id = d.department_id) > 50000;


3️⃣
with dept_salaries as
(select department_id
,sum(salary) as total_salary
from employees
group by department_id)
select department_id
from dept_salaries
where total_salary > 50000;


Опубликуйте свое решение в чатике с тегом #решение4 💬

#задача #sql #марафон
Канал Oracle Developer | Чатик 💬
1👍1
SQL марафон. Задача 5.

Постановка
Нужно найти всех сотрудников, у которых зарплата выше средней зарплаты в таблице employees.
Вывести - все столбцы из таблицы employees.

Сотрудники - таблица employees.

Решения
1️⃣
select e.*
from employees e
where e.salary > (select sum(salary) / count(*) from employees);

2️⃣
with avg_sal as
(select avg(salary) as avg_salary from employees)
select e.*
from avg_sal a
join employees e on e.salary > a.avg_salary;


Опубликуйте свое решение в чатике с тегом #решение5 💬

#задача #sql #марафон
Канал Oracle Developer | Чатик 💬
🌐 Навигация по темам канала Oracle Developer

📘 Основы
#sql #plsql #теория #архитектура
#функции #секционирование #временныетаблицы
#транзакции #исключения #курсоры
#аналитическиефункции #иерархическиезапросы
#системныепредставления #компиляция #представления #коллекции #циклы

🛠 Практика и задачи
#задача #решениезадачи #asktom

🚀 Оптимизация и производительность
#оптимизация #nestedloops #индекс

🧩 Инструменты и технологии
#тестирование #postgresql #oracle #docker #oracle23c #ide #ai

💼 Карьера и Развитие
#карьера #собеседование #hr #тинькофф #magnit #вкусноиточка #leroymerlin#сбер #яндекс #Эффективность #КарьерныйРост #Denis_Kivillev #Работа

🎓 Дополнительные материалы
#видео #подкаст #аудиоподкаст #конкурс #марафон #юмор


В почти 700 (!) постах не мудрено заплутать. Поэтому решил сделать подобие навигации 😉
Не забывайте пользоваться обычным поиском, я не добавил сюда низкочастотные хештеги
.

Канал Oracle Developer | Чатик💬
👍13🔥132
Решение задачи с Java-собеседования

1️⃣ Запрос для получения всех сотрудников вместе с их зарплатными начислениями

Здесь мы используем левое соединение (LEFT JOIN), чтобы отобразить всех сотрудников, даже если у них пока нет выплат.

select p.id person_id
,p.name
,pay.amount
from persons p
left join payments pay
on p.id = pay.person_id;


Что делает запрос:
🔹left join гарантирует, что каждый сотрудник из таблицы Persons будет отображен.
🔹поле amount будет NULL, если у сотрудника нет выплат.


2️⃣ Запрос для получения сотрудников, у которых общий размер выплат превышает 25

Здесь мы используем группировку (GROUP BY) и фильтрацию по агрегированной сумме (HAVING).

select p.id person_id
,p.name
,sum(pay.amount) total_amount
from persons p
left join payments pay
on p.id = pay.person_id
group by p.id, p.name
having sum(pay.amount) > 25;


Что делает запрос:
🔹SUM(pay.amount) рассчитывает общий размер начислений для каждого сотрудника;
🔹HAVING фильтрует только тех сотрудников, у которых сумма начислений превышает 25;
🔹группировка производится по id и name, чтобы для каждого сотрудника была одна строка;
🔹также используется left join, чтобы учесть новых сотрудников, у которых еще нет выплат (их сумма будет NULL, что при суммировании интерпретируется как 0).


Вероятно, джависта можно испугать такой задачкой, но нам Оракл-разработчикам - смешно😁
Зато алгоритмическая секция, может попортить кровушки 🩸

Обсудить в чате 💬

#sql #собеседование #решениезадачи
Канал Oracle Developer| Чат 💬
👍81
📊 Как узнать количество строк в каждой таблице с помощью одного SQL-запроса?

Друзья, всем привет! 👋

Хотите быстро узнать количество строк во всех таблицах базы данных, но без ресурсоемкого SELECT COUNT(*) для каждой? Ловите лайфхак! ⚡️

🔎 Как это сделать?

Oracle хранит статистику о таблицах в системных представлениях USER_TABLES и ALL_TABLES. В поле NUM_ROWS содержится количество строк, зафиксированное при последнем сборе статистики.

📌 Запрос для получения данных

SELECT table_name, num_rows
FROM user_tables;


Этот SQL выдаст список таблиц и количество строк в них на момент последнего обновления статистики.

💡 Важно! Данные могут быть устаревшими. Чтобы освежить статистику, используйте:

call DBMS_STATS.GATHER_SCHEMA_STATS(ownname => 'СХЕМА');


Это особенно полезно в больших БД, где полный пересчет строк мог бы занять очень много времени.

🚀 Итог

Использование системных представлений + регулярное обновление статистики = быстрый и эффективный анализ структуры базы без лишних нагрузок.

А вы как решаете эту задачу? Делитесь в комментариях! 💬

#SQL #Oracle #оптимизация
Канал Oracle Developer | Чатик 💬
👍20🔥7
Друзья, всем привет! 👋

Сегодня немного разбавим разговоры про карьеру задачкой из реального тестового задания на позицию разработчика 🚀

Итак, имеем две таблицы test и test_log:
create table test(
n number
);

create table test_log(
n number
);


Изначально в таблице test содержится 23 записи со значениями n от 1 до 23.
В таблице test_log имеется запись со значением n, равным 8.

💼 Задача:

Написать цикл от 1 до 23 (номер шага цикла обозначим как i), который:

1️⃣ Обновляет данные в таблице test для каждой записи n = i, устанавливая n = n - 1.
2️⃣ Вставляет в таблицу test_log запись с n = i.

💡 Условия:

✔️ Каждые 5 шагов необходимо выполнять фиксацию изменений в таблицах.
✔️ Если на каком-либо шаге произошла ошибка, изменения не должны быть зафиксированы.🚀

Лучшее решение обязательно опубликуем в понедельник 📝

Кто справился быстро — перешлите задачку коллеге, интересно узнать, как быстро справится он 😉

Обсудить в нашем чатике 💬

#задача #sql #практика #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
👍81
Audio
🔥 Кейс Павла: как студент без связей уже в 23 года зарабатывает 200К+? 🔥

Друзья, привет!

У нас новый вдохновляющий кейс! 📢 Рекомендую прослушать на скорости 1,5—2х.🎙

Павлу всего 23 года, он студент и уже сейчас работает в позиции Middle Database Developer с зарплатой 200K+. Это уровень, к которому многие идут годами, но Павел добился такого результата всего за 2,5 года опыта.

🎯 Как он этого добился?

🔸 Начал карьеру еще на 3-м курсе
🔸 Учился через практику, разбор кода и реальные задачи
🔸 Понял, что рост зависит от знаний, а не от стажа
🔸 Самостоятельно готовился к собеседованиям, шлифовал навыки оптимизации SQL
🔸 Вышел на рынок и буквально за пару месяцев увеличил доход в 2 раза
❗️ Но самое интересное – он все еще учится и продолжает расти. Сейчас проходит курс по оптимизации Oracle SQL, чтобы выйти на новый уровень.

💬 Ваш ход! Что вы думаете?

Реально ли студенту пробиться без опыта и связей?
Какие знания дали вам самый быстрый рост в карьере?
Сколько у вас ушло на выход на уровень 200К+?

Павел – живой пример того, что главное не возраст, а готовность учиться и действовать!

Пишите в комментариях Чатик 💬, разберем ваши вопросы и истории!

#Карьера #Oracle #SQL #MiddleDeveloper #Оптимизация #Зарплата #IT #Программирование

Канал Oracle Developer | Чатик 💬
👍14
Как выйти из зоны комфорта и не стать "старым динозавром" в IT?

Друзья, всем привет!

Есть у меня один неприятный вопрос: Как долго ты уже сидишь на своей работе и не меняешь роль? 🤔
Если больше 3-5 лет, то, скорее всего, ты уже в застое.

Ты не задумывался, почему в твоем офисе молодые ребята приходят, растут, уходят на более жирные позиции, а ты сидишь на месте?
Почему твой коллега, который пару лет назад был джуном, уже получает в 2 раза больше тебя?

🚨 Спойлер: потому что ты сидишь в зоне комфорта.

Что такое зона комфорта в IT и почему она убивает тебя?

Зона комфорта в IT — это когда:
Ты сидишь на одной работе годами, выполняешь одно и то же, но не качаешь новые скиллы.
Ты не учишь новые технологии, потому что и так «норм» работаешь.
Ты не проходишь собеседования, потому что привык к своей зарплате и боишься, что на новом месте «будет хуже».
Ты боишься увольнения, но продолжаешь делать вид, что всё под контролем.

Что дальше?

Через год-два появляется новый, молодой специалист — он делает быстрее, учится активнее, понимает тренды, работает эффективнее.

А ты?
Ты сидишь на месте.

А теперь жёсткая правда.

💥 В кризис первым под увольнение попадает тихоня, а не активный сотрудник.
💥 Если ты не развиваешься, ты обесцениваешься.
💥 Тебя заменят, потому что рынок постоянно обновляется.

Твои 5-10 лет опыта НИЧЕГО НЕ СТОЯТ, если твои знания устарели.

Как выбраться из этой ловушки?

🔹 Прекрати бояться сменить работу
Рынок IT меняется каждый день. Сейчас ты на зарплате 150К, но если ты выйдешь на рынок, то за пару месяцев сможешь найти работу на 250-300К.

🔹 Проходи собеседования каждые 6-12 месяцев
Даже если не собираешься уходить. Просто чтобы понимать свой реальный уровень и быть в тонусе.

🔹 Учись, пока тебя не уволили
Ты думаешь, что работодатель будет тебя терпеть вечно? Нет.
Если ты работаешь на одном месте 5-7 лет без роста, то ты просто "балласт".

🔹 Качай Soft-Skills и продавай себя дороже
Обычный работяга, который просто пишет код — не интересен рынку.
Рынку интересны специалисты, которые умеют общаться, аргументировать, продавать свои знания и брать ответственность.

Скоро придут молодые и заберут твоё место.
А вот и пример 23х летнего Паши, который уже наступает тебе на пятки.

Ты можешь продолжать работать по 10 лет в одном месте, пока тебе не скажут:
"Извините, мы пересмотрели наши приоритеты, мы больше в вас не нуждаемся".


А потом ты выйдешь на рынок и внезапно осознаешь:

🔻На собеседованиях ты тупишь, потому что последний раз проходил их 5 лет назад.
🔻Твои навыки устарели.
🔻Ты не знаешь, как правильно продать себя.

И тебя обгонят более молодые, более активные, более смелые ребята.
Потому что они обучаются, проходят собесы и не боятся развиваться.

🔥 Ты всё ещё в зоне комфорта? Тогда делай шаг: учись, прокачивайся, выходи на новый уровень.

👉 Перешли этот пост своему коллеге-тихоне, который сидит годами на одном месте и никуда не двигается.
Может, хоть так его триггернёт! 🚀


#карьера #IT #зона_комфорта #развитие #oracle #sql
Канал Oracle Developer | Чатик💬
👍8🔥1
Друзья, всем привет! 👋🏻

На связи Денис. Пока Паша проводил вебинары и марафон по PL/SQL, готовил для вас посты, я был занят созданием нового продукта:
Экспресс-курс «Оптимизация Oracle SQL: Быстрый старт» 🚀

Продолжительность прохождения: 6–8 часов.
Несмотря на сжатый формат, наш подход остался прежним: мы даём то, что можно применять сразу на работе.

Что в курсе
Быстрый старт в оптимизации Oracle SQL
Планы запросов из реальных проектов
Поиск узких мест и тормозов
Перенос изменений на «горячие» системы, работающие 24/7/365
И всё это — в сжатом, понятном и применимом формате 👍

22 марта с пятью нашими студентами мы совершенно бесплатно провели альфа-тестирование.
Курс показал себя отлично! 💪 Да, были кое-какие замечания — и я их учёл.

И теперь мы готовы к запуску второй волны! 🔥

11 апреля я открою набор в группу бета-тестирования.
❗️Важно: в бета-тест беру только 5️⃣ человек.

Доступ будет по спецусловиям — 4990 ₽ за участие.

Для фана я решил добавить немного игровой механики 😊
🔸За каждый найденный баг я верну 100 ₽ 💰 В коде, в звуке, в тексте — без разницы.
🔸Первому, кто закончит курс — 1000 ₽, второму — 500 ₽, третьему - 200 ₽ 🔥

Если ты помогаешь нам сделать продукт лучше — ты зарабатываешь.

Где вы вообще такое видели? 😄

📆 Обучение: с 12 по 16 апреля.
Формат: видео-уроки, учишься как удобно.

Всего за 4 дня ты
проходишь обучение
находишь ошибки
присылаешь обратную связь
выходишь с новыми инструментами на работу 👍

Ждём именно тебя, если ты хочешь
🔶 быстро прокачаться в оптимизации SQL 🔧
🔶 начать применять знания на практике 🚀
🔶 не ждать, пока «соберутся звёзды», а начать действовать 💪

Ещё раз: только 5 человек❗️
Без доп. мест. Без списков ожидания 🙅‍♂️
Кто первый написал и оплатил — тот и попал на обучение 🕙

Уже 11 апреля мы выкатим полную программу 📚
А 19 апреля будет открытый запуск — но уже с другими условиями 😎

Готов? Тогда следи за анонсами 👇🏻

#oracle #sql #оптимизация #курс #практика #backendpro #кивилев #новыйкурс #миникурс #тестирование #запуск
Канал Oracle Developer | Чатик💬
🔥11👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Друзья, всем привет! 🙌

📢 Напоминаю: уже завтра — 11 апреля — откроем доступ в тестовую группу на новый мини-курс
«Оптимизация Oracle SQL: Быстрый старт» 🚀

Сегодня расскажу, что будет внутри.

Я не просто сделал ещё один курс.
Этот мини-продукт — выжимка из моей флагманской программы.

Формат: короткие видео + тесты + практические задания для закрепления.

Ты заходишь — и уже через час применяешь знания у себя на работе. Эффект — моментальный 🚀

Что будет внутри 👇
🔹 как быстро найти тормозящий запрос в джобе или пакете;
🔹 как выглядит execution plan и как его правильно читать;
🔹 как работать с SQL Monitoring в реальных задачах;
🔹 как находить узкие места и не вестись на "ложные" метки;
🔹 как легко анализировать запросы на 100–200 строк плана.

А ещё поговорим про хинты, переписывание запросов, статистику и прочие «тонкие» моменты.

В чём плюсы курса
▫️ практические задания;
▫️ подробные разборы;
▫️ текстовые подсказки и шпаргалки;
▫️ проверочные тесты.

Кому подойдёт экспресс-курс
▫️ мидлам, которые пока плавают в оптимизации;
▫️ джунам, которые хотят резко вырасти;
▫️ любому, кто хочет разбираться в планах запросов — как в навигаторе.

💬 Вчера получил вопрос в личку:
А если я в оптимизации не силён, но с Oracle работаю каждый день — потяну?

Отвечаю: Да, справишься 💥

Потому что всё построено под реальные задачи, а не «учебные фантазии».
Здесь ты не заучиваешь — а смотришь, пробуешь, внедряешь.

📅 Уже завтра, 11 апреля, откроется регистрация.

Как и говорил, в группе бета-тестирования всего 5 мест.
Кто успел — тот успел. Кто не успел — ждёт 19 апреля и платит дороже.

Не пропускай важные анонсы:
Добавь канал в приоритеты и включи уведомления 🔔

⚡️ Остался всего один день.

Если есть вопросы — пиши моему помощнику - Дмитрию.

🎥 На видео отзыв студента с альфа-тестирования. Кирилл, спасибо 🤝

#oracle #sql #оптимизация #миникурс #кивилев #запуск #sqlmonitor #executionplan #обучение #тестоваягруппа #backendpro
Канал Oracle Developer | Чатик💬
Друзья, всем привет! 👋

Это случилось! ⚡️

Регистрация в тестовую группу нового мини-курса по оптимизации открыта🔥🔥🔥

Как и предупреждал, всего 5️⃣ мест ❗️

Кто успеет — получит крутые знания по спеццене 🔥
Кто не успеет — наблюдает со стороны и заходит 19 апреля уже по другим условиям 🤷‍♂️

И если ты вдруг пропустил последние посты - мы запускаем практический экспресс-курс
"Оптимизация Oracle
SQL: быстрый старт 🚀"

📌 Почему это важно

За последние годы я заметил одну особенность: большинство разработчиков боятся execution plan'ов 😱
Или игнорируют их вовсе, или пытаются гадать по плану, как по кофейной гуще.

Поэтому я решил сделать компактный, но мощный курс, где ты:

🔶 Научишься находить проблемные запросы
🔶 Будешь ориентироваться в execution plan, как у себя дома
🔶 Поймешь, где реальные узкие места в твоем запросе
🔶 Наконец-то подружишься с SQL Monitoring

Друзья, это не “ознакомительный вебинар”, а крутой инструмент, который можно применять в своей работе уже с первой лекции 💡

Что внутри курса

🔶 SQL Monitoring: как включить, где смотреть
🔶 Execution Plan: как получить, разобрать, понять
🔶 Порядок выполнения операций
🔶 FULL TABLE SCAN, MERGE JOIN CARTESIAN, BUFFER SORT и многое другое
🔶 Поиск и устранение узких мест
🔶 Кейсы, тесты, задания 💪

🎯 Почему ты захочешь попасть в тестовую группу

Потому что тебя уже ждут:

Топовые знания и инструменты 🛠
Спеццена — всего 4990 ₽ 🔥
Бонусы — по 50-100 ₽ за найденные баги (даже за лишнюю запятую).
Отдельные призы первым трем студентам, закончившим обучение - 1000, 500 и 200 ₽ 💵
И главное — ты помогаешь сделать курс лучше ❤️

📌 Повторю ещё раз:

регистрация открыта
мест: 5
цена: 4990 ₽
19 апреля будет открытый запуск, но дороже и без бонусов

Теперь ты не просто студент — ты соавтор 🤝

Если ты всё ещё читаешь этот текст, то ты явно из тех, кто не плывёт по течению, а двигается вперёд 💥

📲 Пиши в поддержку 👈🏻 , оформляй участие и вливайся в волну 🏄🏼, которая первой получит доступ к новой линейке мини-курсов и снимет все сливки 🍰

Это будет закрытая группа, где мы вместе тестируем, обсуждаем и фиксим курс 🛠
Прямой вход в кухню, где мы готовим наши продукты ☕️

Только 5️⃣ мест. Кто успел - тот и съел.

#запуск #деньстарт #оптимизация #oracle #sqlmonitor #executionplan #курсоткрылся #тестоваягруппа #backendpro #кивилев #sql #минипродукт #разработка #карьера

Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
11
Друзья, всем привет! 👋🏻

В эту субботу мы не просто отметили День космонавтики — мы сами запустились на орбиту 💥🚀
И нет, не на МКС, а с тест-группой нашего мини-курса по оптимизации Oracle SQL 👩‍💻

Запуск был чёткий, без турбулентности, и уже в первый день мы получили обратную связь от бывалых пилотов SQL-галактики:

Курс очень понравился, все было понятно и систематизировано. Я усвоил важные моменты, которые недопонимал все это время. Уже посмотрел некоторые запросы, которые тормозили у нас на проде, и понял, в каком направлении дальше буду копать! Большое спасибо за этот курс!


Все просто, никакой писанины, воды и умных слов.
Только практические советы:

🔶 как при чтении execution plan быстро понять, где просадка
🔶 как за пару минут найти тормозной запрос 🐢
🔶 когда Table Access Full — это плохо, а когда нет ⚖️
🔶 какие соединения перегружают систему, а какие идут как по маслу 🏃‍➡️

📅 Друзья, уже в эту субботу, 19 апреля, мы откроем курс для всех желающих 🔥

Те из вас, кто дойдет до финишной прямой, дополнительно получат:

первую и вторую лекции с полного курса "Оптимизация Oracle SQL"
видео реального собеса на 440К в MagnitTech 🔥
конспект по мини-курсу 📝
разбор огромных execution plan'ов 🔍
скидку на основной курс 🎁
и, конечно, сертификат участника! 🏅

Следите за новостями, будет интересно 👇🏻

#oracle #backendpro #кивилев #Denis_Kivillev #оптимизация #sql

Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
7
Что быстрее: IN или EXISTS?

Друзья, всем привет! 👋🏻

Сегодня понедельник, самое время немного взбодриться после длинных выходных ☕️
И для разогрева предлагаем вопрос, который любят задавать на технических собесах: что же лучше — IN или EXISTS? 🤔

Итак, перед вами два запроса. Вроде бы делают одно и то же… но есть нюанс👇

-- Not Exists
SELECT /*+ FULL(d) */
d.department_name
FROM hr.departments d
WHERE NOT EXISTS (
SELECT 1
FROM hr.employees e
WHERE e.department_id = d.department_id);

-- Not IN
SELECT /*+ FULL(d) */
d.department_name
FROM hr.departments d
WHERE d.department_id NOT IN (
SELECT e.department_id
FROM hr.employees e);


🔍 На первый взгляд — разницы нет.
Но если присмотреться… 😏

💬 Напишите в комментариях к посту, в чём подвох.

И если вдруг вы не до конца понимаете, в чём отличие между IN и EXISTS, добро пожаловать на наш мини-эфир в четверг 🎙

Разберём по пунктам:

🔶 Сходства и отличия IN и EXISTS 🔄
🔶 Как работают SEMI JOIN и ANTI JOIN под капотом ⚙️
🔶 Какие вопросы по этой теме любят на собеседованиях 🧠
🔶 Примеры из практики 📌

📩 Ссылку на Zoom пришлём утром в четверг — следите за новостями в канале, чтобы не пропустить!

#задача #sql #оптимизация #анонс #вебинар #собеседование #oracle #Pavel_Dolganov

Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111