Права доступа в Oracle💥
Друзья, всем привет!
С вами Костя Андронов 👋
И это мой первый технический пост на канале. Сегодня разберёмся с правами доступа в Oracle💥
🔐 Привилегии в Oracle делятся на 2 типа
1️⃣ Системные — дают возможность выполнять действия в БД в целом.
Пример:
Позволяет создавать таблицы пользователю HR.
Где посмотреть детали:
👉Вью
Кто выдаёт/забирает:
• те, кому выдали привилегию с опцией
• те, у кого есть привилегия
2️⃣ Объектные — управляют доступом к конкретным объектам (таблицам, представлениям и т.д.)
Пример:
Даёт право читать данные из этой таблицы.
Где посмотреть детали:
👉 Вью
Кто выдаёт/забирает?
• владелец объекта
• те, у кого есть право
• те, кому выдали привилегию с опцией
А теперь представим ситуацию:
Создали новую таблицу, как выдать права:
– бизнес-пользователям — только чтение
– разработчикам — все DML операции
Выдавать вручную каждому?
❌ Долго и неудобно.
✅ Решение — роли. Это набор привилегий, который можно назначать пользователям (и даже другим ролям).
Каждый получает ровно то, что ему нужно — и не больше 🔥
Выдать права на новую таблицу можно всем пользователям в 2 команды:
Если интересно подробнее узнать о правах доступа в Oracle, то ставьте 👍
#oracle #backendpro #теория #grant #права #Konstantin_Andronov
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Друзья, всем привет!
С вами Костя Андронов 👋
И это мой первый технический пост на канале. Сегодня разберёмся с правами доступа в Oracle💥
🔐 Привилегии в Oracle делятся на 2 типа
1️⃣ Системные — дают возможность выполнять действия в БД в целом.
Пример:
grant create table to HR;
Позволяет создавать таблицы пользователю HR.
Где посмотреть детали:
👉Вью
DBA_SYS_PRIVS - содержит информацию о всех выданных системных привилегияхКто выдаёт/забирает:
• те, кому выдали привилегию с опцией
ADMIN OPTION• те, у кого есть привилегия
GRANT ANY PRIVILEGE2️⃣ Объектные — управляют доступом к конкретным объектам (таблицам, представлениям и т.д.)
Пример:
grant select on HR.DEPARTMENTS to USR;
Даёт право читать данные из этой таблицы.
Где посмотреть детали:
👉 Вью
DBA_TAB_PRIVS - содержит информацию о всех выданных объектных привилегияхКто выдаёт/забирает?
• владелец объекта
• те, у кого есть право
GRANT ANY OBJECT PRIVILEGE• те, кому выдали привилегию с опцией
WITH GRANT OPTIONА теперь представим ситуацию:
Создали новую таблицу, как выдать права:
– бизнес-пользователям — только чтение
– разработчикам — все DML операции
Выдавать вручную каждому?
❌ Долго и неудобно.
✅ Решение — роли. Это набор привилегий, который можно назначать пользователям (и даже другим ролям).
create read_only_role;
create dev_role;
grant read_only_role to busines_user;
grant read_only_role to dev_role;
grant dev_role to dev_user;
Каждый получает ровно то, что ему нужно — и не больше 🔥
Выдать права на новую таблицу можно всем пользователям в 2 команды:
grant select on tst_table to read_only_role;
grant insert, update, delete on tst_table to dev_role;
Если интересно подробнее узнать о правах доступа в Oracle, то ставьте 👍
#oracle #backendpro #теория #grant #права #Konstantin_Andronov
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
👍47❤8🔥6
Права доступа в Oracle. Часть 2 💥
Друзья, всем привет!
В продолжение поста Кости про права.
Один из подписчиков, к слову сказать, наш студент, обучавшийся на курсе по PL/SQL, правильно подметил, что в Oracle 12c появился новый объектный грант - READ.
Что это за грант такой и в чем отличие от SELECT?
Мы привыкли, что если нужен доступ к объекту, то достаточно выдать грант SELECT:
Однако SELECT позволяет выполнять, в том числе, операцию блокировки строки - SELECT ... FOR UPDATE. Всегда ли это нужно? Хороший вопрос.
Видимо, проблема назрела, и Oracle сделали новый грант - READ, который позволяет выполнять выборку из таблицы, но без возможности блокировки:
❌ Так уже не напишешь
Документация Oracle 12.2c
Коллеги, очень классно, что вы делитесь такими особенностями - не всегда они попадают в поле зрения 👍🏻
Всем хорошего дня ☀️
#oracle #backendpro #теория #grant #права #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Друзья, всем привет!
В продолжение поста Кости про права.
Один из подписчиков, к слову сказать, наш студент, обучавшийся на курсе по PL/SQL, правильно подметил, что в Oracle 12c появился новый объектный грант - READ.
Что это за грант такой и в чем отличие от SELECT?
Мы привыкли, что если нужен доступ к объекту, то достаточно выдать грант SELECT:
grant select on some_table to some_user;
Однако SELECT позволяет выполнять, в том числе, операцию блокировки строки - SELECT ... FOR UPDATE. Всегда ли это нужно? Хороший вопрос.
Видимо, проблема назрела, и Oracle сделали новый грант - READ, который позволяет выполнять выборку из таблицы, но без возможности блокировки:
grant read on some_table to some_user;
❌ Так уже не напишешь
select * from some_table where ... for update;
Документация Oracle 12.2c
Коллеги, очень классно, что вы делитесь такими особенностями - не всегда они попадают в поле зрения 👍🏻
Всем хорошего дня ☀️
#oracle #backendpro #теория #grant #права #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
👍29❤3🆒1
🔐 Роли в Oracle
Друзья, всем привет! 👋🏻
В личку мне начали задавать вопросы, мол, Денис, было бы неплохо рассказать чуть больше про роли - что это, зачем, как использовать и т.п.
Почему бы и нет? Материал рассчитан на Junior-разработчиков.
Роли в Oracle - инструмент, который часто недооценивают, но который может здорово упростить жизнь администратору и разработчику 🚀
Что это такое?
Роль - это контейнер для набора привилегий. Вместо того чтобы выдавать пользователю десятки прав по отдельности, мы создаём роль, наделяем её нужными правами и назначаем пользователю.
Пример использования
1️⃣ Создаём роль:
2️⃣ Даём привилегии:
3️⃣ Назначаем роль пользователю:
Теперь Иван получает доступ ко всем объектам, указанным в роли, без индивидуальной раздачи прав.
Профит для пользователя
💡 Меньше хаоса в правах.
💡 Легко добавлять/удалять доступ.
💡 Быстро подключать новых сотрудников/приложения к проекту.
Как посмотреть, что внутри роли?
Для своих ролей:
Для анализа, какие привилегии входят в роли:
Для полной картины (только DBA): DBA_ROLE_PRIVS, DBA_ROLES.
Роли можно наследовать
Например, роль SELECT_CATALOG_ROLE содержит в себе роль HS_ADMIN_SELECT_ROLE.
Представления для просмотра иерархии ролей - ROLE_ROLE_PRIVS.
Особенности использования ролей
▫️ Если роль слишком “широкая”, можно случайно открыть доступ лишним пользователям.
▫️ Роли можно наследовать от других ролей - может быть сложновато понять, откуда ноги растут.
▫️ Есть особенности работы с ролями в PL/SQL-модулях и правами на объекты. Например, если вы дали роли select на таблицу и она используется в PL/SQL-процедуре, то пользователь столкнется с ошибкой отсутствия доступа к таблице 🤷🏻♂️ При этом выполнение того же select вне PL/SQL-кода будет без ошибок.
Если интересно ставь палец вверх и мы расскажем об этом в одном из следующих постов 👍🏻
Всем хорошей трудовой недели 👨🏻💻
#oracle #backendpro #теория #grant #права #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Друзья, всем привет! 👋🏻
В личку мне начали задавать вопросы, мол, Денис, было бы неплохо рассказать чуть больше про роли - что это, зачем, как использовать и т.п.
Почему бы и нет? Материал рассчитан на Junior-разработчиков.
Роли в Oracle - инструмент, который часто недооценивают, но который может здорово упростить жизнь администратору и разработчику 🚀
Что это такое?
Роль - это контейнер для набора привилегий. Вместо того чтобы выдавать пользователю десятки прав по отдельности, мы создаём роль, наделяем её нужными правами и назначаем пользователю.
Пример использования
1️⃣ Создаём роль:
CREATE ROLE analyst_role;
2️⃣ Даём привилегии:
GRANT SELECT ON sales TO analyst_role;
GRANT SELECT, UPDATE ON customers TO analyst_role;
3️⃣ Назначаем роль пользователю:
GRANT analyst_role TO ivan;
Теперь Иван получает доступ ко всем объектам, указанным в роли, без индивидуальной раздачи прав.
Профит для пользователя
💡 Меньше хаоса в правах.
💡 Легко добавлять/удалять доступ.
💡 Быстро подключать новых сотрудников/приложения к проекту.
Как посмотреть, что внутри роли?
Для своих ролей:
SELECT * FROM USER_ROLE_PRIVS;
Для анализа, какие привилегии входят в роли:
SELECT * FROM ROLE_SYS_PRIVS;
SELECT * FROM ROLE_TAB_PRIVS;
Для полной картины (только DBA): DBA_ROLE_PRIVS, DBA_ROLES.
Роли можно наследовать
Например, роль SELECT_CATALOG_ROLE содержит в себе роль HS_ADMIN_SELECT_ROLE.
Представления для просмотра иерархии ролей - ROLE_ROLE_PRIVS.
Особенности использования ролей
▫️ Если роль слишком “широкая”, можно случайно открыть доступ лишним пользователям.
▫️ Роли можно наследовать от других ролей - может быть сложновато понять, откуда ноги растут.
▫️ Есть особенности работы с ролями в PL/SQL-модулях и правами на объекты. Например, если вы дали роли select на таблицу и она используется в PL/SQL-процедуре, то пользователь столкнется с ошибкой отсутствия доступа к таблице 🤷🏻♂️ При этом выполнение того же select вне PL/SQL-кода будет без ошибок.
Если интересно ставь палец вверх и мы расскажем об этом в одном из следующих постов 👍🏻
Всем хорошей трудовой недели 👨🏻💻
#oracle #backendpro #теория #grant #права #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
👍26❤4🦄1
Пятничного юмора в канал 😊
Всем хороших выходных ☀️
#oracle #backendpro #юмор
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Всем хороших выходных ☀️
#oracle #backendpro #юмор
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
😁22🔥6❤3👍3🦄1
Индусы тебя заменят
Друзья, всем привет!
Хех, вот это новые тренды - подмога в виде индусов "Вельком ту Оракль" 🇮🇳
А куда подевались прежние айтишники? 😄
Хотя я сам сейчас не на российском рынке труда, но с удовольствием узнал бы подробнее, что же там за новые тенденции 💁🏻
А вам интересно?
Если ДА - ставьте 🔥
Если НЕТ - 🦄
Наберём 50 огоньков - приглашу Любу к нам на часик, и она расскажет подробнее о меняющемся рынке труда в России под натиском IT-мигрантов ✅
Бесплатно, но без записи 😊
Для тех, кто с нами недавно
Люба Прохорова - очень опытный специалист в сфере построения карьеры. Часто участвует в наших встречах и курсах, помогает прокачивать карьеру ребят, выступает на разные темы. Когда-то она лично помогла мне перейти в иностранную компанию на позицию Java-разработчика ✅
Ставь реакцию 🔥 или 🦄
#карьера
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Друзья, всем привет!
Хех, вот это новые тренды - подмога в виде индусов "Вельком ту Оракль" 🇮🇳
А куда подевались прежние айтишники? 😄
Хотя я сам сейчас не на российском рынке труда, но с удовольствием узнал бы подробнее, что же там за новые тенденции 💁🏻
А вам интересно?
Если ДА - ставьте 🔥
Если НЕТ - 🦄
Наберём 50 огоньков - приглашу Любу к нам на часик, и она расскажет подробнее о меняющемся рынке труда в России под натиском IT-мигрантов ✅
Бесплатно, но без записи 😊
Для тех, кто с нами недавно
Люба Прохорова - очень опытный специалист в сфере построения карьеры. Часто участвует в наших встречах и курсах, помогает прокачивать карьеру ребят, выступает на разные темы. Когда-то она лично помогла мне перейти в иностранную компанию на позицию Java-разработчика ✅
Ставь реакцию 🔥 или 🦄
#карьера
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
🔥87🦄8❤1
Анонс встречи с Любой
Друзья, всем привет!
Вижу по вашим реакциям на предыдущий пост, что тема актуального состояния российского рынка и ИТ-мигрантов вам интересна. Отлично! 🔥
3 сентября в 19:00 состоится встреча с Любой Прохоровой.
Пока не буду раскрывать все подробности, но Люба затронет темы миграции ИТ-специалистов из РФ и в РФ, а также текущие тенденции на рынке.
Больше информации опубликую 1 сентября 🎓
А пока отметьте в календаре время с 19:00 до 20:00 МСК 3 сентября. Будет интересно! 😉
Вход бесплатный, всего 100 мест и записи традиционно не будет ✅
#карьера
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Друзья, всем привет!
Вижу по вашим реакциям на предыдущий пост, что тема актуального состояния российского рынка и ИТ-мигрантов вам интересна. Отлично! 🔥
3 сентября в 19:00 состоится встреча с Любой Прохоровой.
Пока не буду раскрывать все подробности, но Люба затронет темы миграции ИТ-специалистов из РФ и в РФ, а также текущие тенденции на рынке.
Больше информации опубликую 1 сентября 🎓
А пока отметьте в календаре время с 19:00 до 20:00 МСК 3 сентября. Будет интересно! 😉
Вход бесплатный, всего 100 мест и записи традиционно не будет ✅
#карьера
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
👍17❤2
Марафон SQL-задач с LeetCode. Уровень Easy
Коллеги, всем привет!
На связи Денис. Что-то у нас давно не было «движухи» (модное нынче слово) в канале 🏃🏻♂️🏃♀️
Я решил «тряхнуть стариной» и пошерстить LeetCode 😊
Из этого родилась идея конкурса с призовым фондом аж 6000 рублей на пятничное пивко или чай 🍺
Суть марафона
🔸 Начиная с 11:00 МСК, каждый час я буду публиковать SQL-задачки.
🔸 Всего будет 5️⃣ задач, уровень — Easy.
🔸 В 17:00 МСК размещу форму для отправки ваших ответов. Среди участников разыграю призы.
🔸 Присылать ответы можно будет до 12:00 пятницы.
Принцип розыгрыша
С помощью рандомайзера выберем трёх счастливчиков из тех, кто прислал свои ответы:
🏆 Первое место — 3 000 руб.
🥈 Второе место — 2 000 руб.
🥉 Третье место — 1 000 руб.
На пятничную вкусняшку точно хватит 😉
Почему Easy?
1️⃣ На большинстве собеседований сложных задач не дают, особенно если это позиция условного Java-разработчика.
2️⃣ Задачи уровня Middle и выше требуют намного больше времени, которого у большинства подписчиков вечно не хватает 🤷🏻♂️
Если марафон зайдёт, то следующий проведём с задачами уровня Middle 😉
Итак, стартуем в 11:00 МСК 🚀🚀🚀
—-
⚠️ Рекомендую не использовать ИИ. Если такие простые задачки без него не решить, повод пройти базовый курс SQL или хотя бы посидеть на SQL-тренажёрах.
✅ Задачки будут с ссылками на Leetcode, там можно сразу проверять решение, регистрация бесплатная.
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Коллеги, всем привет!
На связи Денис. Что-то у нас давно не было «движухи» (модное нынче слово) в канале 🏃🏻♂️🏃♀️
Я решил «тряхнуть стариной» и пошерстить LeetCode 😊
Из этого родилась идея конкурса с призовым фондом аж 6000 рублей на пятничное пивко или чай 🍺
Суть марафона
🔸 Начиная с 11:00 МСК, каждый час я буду публиковать SQL-задачки.
🔸 Всего будет 5️⃣ задач, уровень — Easy.
🔸 В 17:00 МСК размещу форму для отправки ваших ответов. Среди участников разыграю призы.
🔸 Присылать ответы можно будет до 12:00 пятницы.
Принцип розыгрыша
С помощью рандомайзера выберем трёх счастливчиков из тех, кто прислал свои ответы:
🏆 Первое место — 3 000 руб.
🥈 Второе место — 2 000 руб.
🥉 Третье место — 1 000 руб.
На пятничную вкусняшку точно хватит 😉
Почему Easy?
1️⃣ На большинстве собеседований сложных задач не дают, особенно если это позиция условного Java-разработчика.
2️⃣ Задачи уровня Middle и выше требуют намного больше времени, которого у большинства подписчиков вечно не хватает 🤷🏻♂️
Если марафон зайдёт, то следующий проведём с задачами уровня Middle 😉
Итак, стартуем в 11:00 МСК 🚀🚀🚀
—-
⚠️ Рекомендую не использовать ИИ. Если такие простые задачки без него не решить, повод пройти базовый курс SQL или хотя бы посидеть на SQL-тренажёрах.
✅ Задачки будут с ссылками на Leetcode, там можно сразу проверять решение, регистрация бесплатная.
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
❤11👍2
[1] Задача № 175. Combine Two Tables
Постановка
Напиши решение, чтобы вывести имя, фамилию, город и штат каждого человека из таблицы Person. Если для personId нет адреса в таблице Address, выведи вместо него null.
Верни результирующую таблицу в любом порядке.
Формат результата приведён в следующем примере.
Источник
https://leetcode.com/problems/combine-two-tables/
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Постановка
Напиши решение, чтобы вывести имя, фамилию, город и штат каждого человека из таблицы Person. Если для personId нет адреса в таблице Address, выведи вместо него null.
Верни результирующую таблицу в любом порядке.
Формат результата приведён в следующем примере.
Источник
https://leetcode.com/problems/combine-two-tables/
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
❤1
[2] Задача 511. Game Play Analysis I
Постановка
Напиши решение, чтобы найти дату первого входа для каждого игрока.
Верни результирующую таблицу в любом порядке.
Формат результата приведён в следующем примере.
Источник
https://leetcode.com/problems/game-play-analysis-i/
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Постановка
Напиши решение, чтобы найти дату первого входа для каждого игрока.
Верни результирующую таблицу в любом порядке.
Формат результата приведён в следующем примере.
Источник
https://leetcode.com/problems/game-play-analysis-i/
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
❤2
[3] Задача 577. Employee Bonus
Постановка
Напиши решение, чтобы вывести имя и размер бонуса каждого сотрудника, у которого бонус меньше 1000.
Верни результирующую таблицу в любом порядке.
Формат результата приведён в следующем примере.
Источник
https://leetcode.com/problems/employee-bonus/
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Постановка
Напиши решение, чтобы вывести имя и размер бонуса каждого сотрудника, у которого бонус меньше 1000.
Верни результирующую таблицу в любом порядке.
Формат результата приведён в следующем примере.
Источник
https://leetcode.com/problems/employee-bonus/
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
❤1
[4] Задача 595. Big Countries
Постановка
Напиши решение, чтобы вывести название, население и площадь больших стран.
Страна считается большой, если:
▫️ её площадь не менее трёх миллионов (т. е. 3000000 км²), или
▫️ её население не менее двадцати пяти миллионов (т. е. 25000000).
Верни результирующую таблицу в любом порядке.
Формат результата приведён в следующем примере.
Источник
https://leetcode.com/problems/big-countries/description/
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Постановка
Напиши решение, чтобы вывести название, население и площадь больших стран.
Страна считается большой, если:
▫️ её площадь не менее трёх миллионов (т. е. 3000000 км²), или
▫️ её население не менее двадцати пяти миллионов (т. е. 25000000).
Верни результирующую таблицу в любом порядке.
Формат результата приведён в следующем примере.
Источник
https://leetcode.com/problems/big-countries/description/
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
❤1
[5] Задача 586. Customer Placing the Largest Number of Orders
Постановка
Напиши решение, чтобы найти customer_number для клиента, который сделал наибольшее количество заказов.
Тестовые данные подготовлены так, что ровно один клиент сделал больше заказов, чем любой другой.
Формат результата приведён в следующем примере.
Расширенный вариант
Что, если несколько клиентов сделали наибольшее количество заказов? Можешь ли ты найти customer_number всех таких клиентов?
Источник
https://leetcode.com/problems/customer-placing-the-largest-number-of-orders/
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Постановка
Напиши решение, чтобы найти customer_number для клиента, который сделал наибольшее количество заказов.
Тестовые данные подготовлены так, что ровно один клиент сделал больше заказов, чем любой другой.
Формат результата приведён в следующем примере.
Расширенный вариант
Что, если несколько клиентов сделали наибольшее количество заказов? Можешь ли ты найти customer_number всех таких клиентов?
Источник
https://leetcode.com/problems/customer-placing-the-largest-number-of-orders/
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Отправляем ваши варианты решения
Коллеги, надеюсь мини-марафон вам понравился 👌🏻
Отправить ваши ответы можно до 12:00 МСК 29 августа.
➡️Присылайте ответы сюда ⬅️
Розыгрыш проведу в пятницу 🎁
Принцип розыгрыша
С помощью рандомайзера выберем трёх счастливчиков из тех, кто прислал свои ответы:
🏆 Первое место — 3 000 руб.
🥈 Второе место — 2 000 руб.
🥉 Третье место — 1 000 руб.
На пятничную вкусняшку точно хватит 😉
Всем удачи 🍀
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Коллеги, надеюсь мини-марафон вам понравился 👌🏻
Отправить ваши ответы можно до 12:00 МСК 29 августа.
➡️Присылайте ответы сюда ⬅️
Розыгрыш проведу в пятницу 🎁
Принцип розыгрыша
С помощью рандомайзера выберем трёх счастливчиков из тех, кто прислал свои ответы:
🏆 Первое место — 3 000 руб.
🥈 Второе место — 2 000 руб.
🥉 Третье место — 1 000 руб.
На пятничную вкусняшку точно хватит 😉
Всем удачи 🍀
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
❤4
Решения задач к марафону по SQL
Друзья, всем привет!
С вами Денис 🖐🏻
В среду я опубликовал пять задач уровня Easy с Leetcode.
Респектую ребятам, кто отправил свои ответы для участия в конкурсе 🤝 После этого поста ответы не принимаются.
Ниже я опубликую свои решения.
1️⃣ Задача № 175. Combine Two Tables
2️⃣ Задача 511. Game Play Analysis I
3️⃣ Задача 577. Employee Bonus
4️⃣ Задача 595. Big Countries
5️⃣ Задача 586. Customer Placing the Largest Number of Orders
Похожая задачка на пятую была на собесе в GehtSoft. Если интересно как это было на собесе ставь 🦄 - залью видос.
На скринах показана статистика скорости выполнения запросов - этот показатель может плавать.
Подведем итоги
Конечно, на Oracle-разработчика такие легкие задачи, скорее всего, не встретятся.
Тем не менее, когда я проходил собесы на Java-разработчика, уровень SQL-задачек был именно таким. Очень много вопросов по JOINам.
Если вы решили перетечь в Java-разработку, то считайте секция с БД на собесах у вас в кармане 😊
Результат розыгрыша призов будет сегодня, следите за каналом, включите уведомления, чтоб не пропустить🔔
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Друзья, всем привет!
С вами Денис 🖐🏻
В среду я опубликовал пять задач уровня Easy с Leetcode.
Респектую ребятам, кто отправил свои ответы для участия в конкурсе 🤝 После этого поста ответы не принимаются.
Ниже я опубликую свои решения.
1️⃣ Задача № 175. Combine Two Tables
select firstName, lastName, city, state
from person p
left join address a on p.personId = a.personId;
2️⃣ Задача 511. Game Play Analysis I
select player_id, min(to_char(event_date, 'YYYY-MM-DD')) first_login
from Activity
group by player_id;
3️⃣ Задача 577. Employee Bonus
select name, bonus
from employee e
left join bonus b on e.empid = b.empid
where nvl(b.bonus,0) < 1000;
4️⃣ Задача 595. Big Countries
select name, population, area
from world w
where w.area >= 3000000 or w.population >= 25000000;
5️⃣ Задача 586. Customer Placing the Largest Number of Orders
select o1.customer_number
from orders o1
group by o1.customer_number
having count(1) = (select max(count(1))
from orders o
group by o.customer_number)
Похожая задачка на пятую была на собесе в GehtSoft. Если интересно как это было на собесе ставь 🦄 - залью видос.
На скринах показана статистика скорости выполнения запросов - этот показатель может плавать.
Подведем итоги
Конечно, на Oracle-разработчика такие легкие задачи, скорее всего, не встретятся.
Тем не менее, когда я проходил собесы на Java-разработчика, уровень SQL-задачек был именно таким. Очень много вопросов по JOINам.
Если вы решили перетечь в Java-разработку, то считайте секция с БД на собесах у вас в кармане 😊
Результат розыгрыша призов будет сегодня, следите за каналом, включите уведомления, чтоб не пропустить
#sql #конкурс #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄8👍3❤2