SQL Pro - всё об SQL Реклама: @anothertechrock Контент канала: 1. Разбор вопросов с собеседований 2. Трюки SQL 3. Видео 4. Тесты 5. Задачи на логику 6. Юмор
Антипаттерны SQL
Автор: Билл Карвин
Год издания: 2024
#db #sql #ru
Скачать книгу
mysql> SELECT REVERSE(UPPER(REPLACE('Hello, SQL!', ',', '!'))) AS result;
Читать полностью…Вопрос на SQL собеседовании.
Какие из операторов SQL могут быть использованы для выполнения CRUD (Create, Read, Update, Delete) операций над данными?
Ответ:
INSERT, DELETE, SELECT, UPDATE
#sql #собеседование
Вопрос на SQL собеседовании.
Что такое оконная функция? И в чем отличие от функции агрегации с группировкой?
Ответ:
Оконная функция в SQL - функция, которая работает с выделенным набором строк (окном, партицией) и выполняет вычисление для этого набора строк в отдельном столбце.
При использовании агрегирующих функций предложение GROUP BY сокращает количество строк в запросе с помощью их группировки. При использовании оконных функций количество строк в запросе не уменьшается по сравнению с исходной таблицей.
#sql #собеседование
❔ Вопрос с собеседования
Что такое обобщённое табличное выражение (CTE) и как оно используется?
Ответ: Обобщённое табличное выражение (CTE) — это временное результатное выражение, которое можно использовать несколько раз в рамках одного запроса для упрощения его структуры. CTE создаётся с использованием ключевого слова WITH и может значительно улучшить читабельность запросов, позволяя обращаться к нему как к таблице. Кроме того, CTE могут быть рекурсивными, что упрощает работу с иерархическими данными.
➡️ SQL Pro | #собеседование
💻 Оператор CASE
Оператор CASE
в SQL аналогичен конструкции IF...ELSE
в других языках программирования. Он позволяет выполнять условия с возвратом значений в зависимости от результата.
Синтаксис следующий:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END
CASE
удобно использовать вместе с ORDER BY
, чтобы настраивать сортировку данных по заданным условиям, а не только по алфавиту или числам.💻 Логическое и физическое удаление в SQL
В SQL данные можно удалять двумя способами: логически или физически.
▶️ Логическое удаление — сохраняет записи в таблице, помечая их как "удалённые" через столбец, например, is_deleted
. Это позволяет скрывать данные без их полного удаления и полезно для аудита или восстановления. Однако оно занимает больше места и требует дополнительных фильтров в запросах.
▶️ Физическое удаление — удаляет строки из таблицы с помощью команды DELETE
. Если транзакция не зафиксирована (нет COMMIT
), данные можно восстановить с помощью ROLLBACK
. Но после фиксации транзакции восстановление возможно только через резервные копии или журналы.
❤️ — если было полезно
🤓 — если уже знал
➡️ SQL Pro | #обучение
❔ Вопрос с собеседования
Как работает SQL-триггер?
Ответ: Когда происходит событие, СУБД автоматически вызывает триггер, который затем выполняет набор операторов SQL, определенных в триггере. Триггеры определяются для каждой таблицы и создаются с помощью оператора CREATE TRIGGER. Они могут запускаться до или после наступления события и выполняться один раз для каждой затронутой строки либо один раз для каждого оператора.
➡️ SQL Pro | #собеседование
❔ Задача с LeetCode «Recyclable and Low Fat Products №1757»
Напишите решение для поиска идентификаторов продуктов с низким содержанием жира, пригодных для вторичной переработки.
Верните таблицу результатов в любом порядке.
Формат результатов приведен в следующем примере.
Входные данные:
+------------+----------+------------+
| product_id | low_fats | recyclable |
+------------+----------+------------+
| 0 | Y | N |
| 1 | Y | Y |
| 2 | N | Y |
| 3 | Y | Y |
| 4 | N | N |
+------------+----------+------------+
+------------+
| product_id |
+------------+
| 1 |
| 3 |
+------------+
❔ Вопрос с собеседования
Как оператор GROUP BY
обрабатывает поля с NULL
?
Ответ: Учитывая, что NULL в SQL — просто отсутствие значения, то все значения NULL при группировке попадают в одну группу.
➡️ SQL Pro | #собеседование
❔ Задача с LeetCode «Find Customer Referee №584»
Найдите имена клиентов, на которые не ссылается клиент с идентификатором = 2.
Верните таблицу результатов в любом порядке.
Формат результатов приведен в следующем примере.
Входные данные:
+----+------+------------+
| id | name | referee_id |
+----+------+------------+
| 1 | Will | null |
| 2 | Jane | null |
| 3 | Alex | 2 |
| 4 | Bill | null |
| 5 | Zack | 1 |
| 6 | Mark | 2 |
+----+------+------------+
+------+
| name |
+------+
| Will |
| Jane |
| Bill |
| Zack |
+------+
🔥 Почему Cassandra становится выбором лидеров в мире больших данных?
На открытом вебинаре 4 декабря в 20:00 мск мы расскажем все о ее возможностях!
Cassandra — это не просто база данных. Это мощный инструмент для работы с большими объемами данных, масштабирования и обеспечения высокой доступности. Узнайте, почему она настолько популярна и как используется в разных отраслях.
💡 Реальные кейсы, примеры внедрения, уникальные преимущества — вебинар поможет вам понять, как именно Cassandra может улучшить управление данными и сэкономить ресурсы.
Вебинар пройдет в рамках курса «Cassandra для разработчиков и администраторов», все посетители получат welcome-скидку на обучение.
🔗 Ссылка на регистрациюРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🌐 Хотите вывести свои скиллы в аналитике данных на новый уровень?
На открытом уроке разберем оконные функции, их синтаксис и практическое применение для сложных аналитических задач.
Спикер Андрей Поляков — старший разработчик сервисов платежных систем в Unlimint.
Вы узнаете, как использовать PostgreSQL для ранжирования, суммирования и создания отчетов. Эти навыки ценят компании-лидеры!
➡️ Урок пройдет 27 ноября в 20:00 мск. Регистрируйтесь сейчас — участники получат скидку на большое обучение «Data Warehouse Analyst»Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
PostgreSQL vs Oracle: что выбрать для вашего проекта?
Построение базы данных — основа любой надежной системы. Oracle и PostgreSQL — два популярных выбора, но какой из них лучше для ваших задач?
На бесплатном вебинаре 27 ноября в 20:00 мск разберем ключевые отличия PostgreSQL и Oracle! Вы узнаете, как их архитектура и лицензирование влияют на масштабируемость и стоимость, чем различаются их подходы к безопасности, и почему PostgreSQL становится фаворитом в современных компаниях.
Урок будет полезен администраторам, которые планируют переход на PostgreSQL, и разработчикам, которые хотят понимать особенности обеих СУБД для обоснованного выбора.
Спикер Игорь Тоескин — автор статей, активный участник профессионального сообщества, участник центра компетенций СУБД в Магните.
Регистрируйтесь на вебинар и получите скидку на большой курс «PostgreSQL для администраторов баз данных и разработчиков».
Обучаем аналитиков платформы данных и берём в команду ⚡️
Регистрируйся на онлайн-интенсив в Открытые школы Т1!
От тебя нужен только опыт работы от 6 месяцев в проектах разработки хранилищ данных и желание попасть в команду Т1.
Лучшим участникам предложим оффер в Т1 — крупнейшую ИТ-компанию страны по версии RAEX и CNews Analytics 2023 🔝.
Зачем участвовать?
⚙️Получить поддержку наставников. В нашей команде — передовые специалисты в области разработки хранилищ данных и аналитических систем, которые помогут прокачать навыки. Карьерные треки для выпускников Открытых школ позволяют быстрее вырасти в мидла в Т1.
⚙️ Работать в классной компании, где есть все айтишные бонусы (ДМС, удалёнка и крутые офисы, спорт и обучение).
⌛️ Быстрое обучение: 1 месяц.
💻 Гибкий формат: все этапы онлайн, занятия по вечерам.
Бигтех ждёт тебя, подавай заявку до 22 ноября!
#реклама
О рекламодателе
🔔 PostgreSQL уже не справляется? Пора на новый уровень!
В мире больших данных время — главный ресурс. Если вам нужны мощные аналитические запросы, горизонтальное масштабирование и высокая производительность, пора знакомиться с Arenadata DB (Greenplum).
📅 На открытом вебинаре 4 марта в 18:30 МСК разберем:
- Отличия MPP ArenadataDB от PostgreSQL
- Как запускать и останавливать кластер
- Как писать аналитические запросы, чтобы получать максимум
👨🏫 Спикер: Алексей Железной — Senior Data Engineer с большим опытом и широким технологическим стеком.
🔗 Регистрируйтесь и получите скидку на большое обучение «Greenplum для разработчиков и архитекторов баз данных»
Не упустите возможность поднять свои навыки на новый уровень! 💪
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👉 Задача: 👉Напишите SQL-запрос, который берет строку 'Hello, SQL!',
1. Переводит её в верхний регистр
2. Заменяет запятую на восклицательный знак
3. Переворачивает строку задом наперёд.
🎥 Почему Открытые школы Т1 — больше, чем просто ИТ-интенсив?
Отвечают эксперты! Программа помогает прокачать навыки, получить уникальный опыт и бустануть карьеру аналитиков и разработчиков платформ данных (DWH).
💡 Что тебя ждёт?
🔹Гибкий онлайн-формат.
🔹Бесплатное обучение: уникальные знания и прикладные навыки.
🔹Поддержка преподавателей и комьюнити экспертов.
🔹Возможность начать карьеру в ИТ-холдинге Т1 с современным техстеком и крутыми бонусами: ДМС, удаленка и крутые офисы, обучение и многое другое.
🔹Современный техстек и уникальный рыночный опыт: лучшие выпускники смогут присоединиться к проекту по созданию новой технологической платформы данных в банковской сфере.
✨ Узнай больше о программе и подавай заявку до 10 февраля!
Реклама. Информация о рекламодателе
PostgreSQL 17: архитектура и тюнинг SQL-запросов
Погрузись в архитектуру и прокачай оптимизацию запросов одной из самых популярных open source СУБД – PostgreSQL.
🌐 В программе курса:
🤩 Разберем, как работают СУБД вообще и PostgreSQL в частности: что такое MVCC, ACID, WAL, LRU, PPC/TPC и другие фундаментальные понятия архитектуры баз данных
🤩 Получите свой собственный выделенный облачный PostgreSQL-сервер (8 vCPU, 12G RAM, 100G NVMe) – БЕСПЛАТНО на время обучения предоставляется
🤩 Получите теорию и практику EXPLAIN и EXPLAIN ANALYZE на разных типа запросов
🤩 Изучите архитектуру хранения данных в PostgreSQL, типы и особенности индексов, а также получите полезные советы и трюки оптимизации БД
🗓 Старт курса: 6 марта. Продолжительность: 5 недель обучения (четверг, 18:00 МСК).
Изучить программу и записаться можно здесь.
🤩Кто мы: R&D-центр Devhands, основатель школы Алексей Рыбак.
Автор курса — Николай Ихалайнен, эксперт по СУБД (ex-Percona), со-основатель MyDB, энтузиаст открытого ПО.
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqwTkwcg
⚡️Как интегрировать PostgreSQL с Power BI для анализа данных? Присоединяйтесь к нашему вебинару 23.01 в 20:00 и узнайте, как использовать эти инструменты для принятия обоснованных бизнес-решений!
На бесплатном вебинаре обсудим с вами:
- Как интегрировать данные из PostgreSQL в Power BI.
- Методы визуализации данных и создания интерактивных дашбордов.
- Практические кейсы использования Power BI в бизнесе и других инструментов BI.
- Советы по оптимизации производительности и безопасности данных при работе с PostgreSQL в BI-системах.
Этот вебинар будет полезен всем, кто хочет эффективно использовать BI-инструменты для анализа данных и принятия стратегических решений.
👉Регистрация. Участие бесплатно
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Знание DWH и dbt – это must have для уровня middle/senior-аналитика и инженера как на российском, так и на международном рынке.
Хотите освоить эти инструменты?
Попробуйте симулятор Data Warehouse Analytics Engineer на базе dbt для инженеров и аналитиков данных.
Уникальный формат обучения:
⚡️ максимум прикладных практических навыков
⚡️ браузерная IDE для запуска проектов dbt
⚡️ геймифицированные задания с подробным описанием и подсказками
⚡️ экспресс-квизы для быстрого запоминания
Вас ждут более 100 задач из разных бизнес-сфер, которые вы возьмете в портфолио, например:
✅ Статистика поездок на самокатах - вы сможете выстроить аналитический пайплайн из таблиц и представлений, который выдает общую и дневную статистику поездок с учетом данных пользователей, и покрыть его тестами качества данных и документацией
✅ Аналитика ивентов приложения - вы разработаете SQL-пайплайн, который будет инкрементально очищать и обрабатывать таблицу событий из мобильного приложения, обогащать ее данными поездок и пользователей и в конечном итоге представлять продуктовые метрики
✅ Анализ финансовых данных - поможете финансовым аналитикам обработать данные в Excel с помощью SQL, dbt и аналитической in-memory базы данных DuckDB, не передавая данные в сеть
✅ Создание аналитической платформы - выступите в роли инженера аналитики и развернёте аналитические dbt-пайплайны с планировщиком, мониторингом и централизованным git-репозиторием для всей команды аналитиков
Первые 4 задачи доступны в демо-доступе бесплатно.
➡️Получить демо-доступ сейчас
Реклама. ООО "Инженеркатех" ИНН 9715483673
Создавайте и проверяйте задания по программированию на GitVerse
На платформе для работы с исходным кодом GitVerse появился SmartClass — бесплатный инструмент для управления заданиями по программированию. С ним можно создавать, хранить и проверять задачи, а также автоматизировать ревью кода с помощью AI-ассистента GigaCode. В общем, все что нужно – теперь под рукой.
Пользователи SmartClass получают все преимущества платформы GitVerse, что дает начинающим специалистам возможность освоить профессиональные инструменты разработки. Решение позволяет не только изучать программирование и код, но и погрузиться в детали работы с такими инструментами и практиками, как CI/CD, Git и многими другими.
И, конечно, теперь смело можно отдать рутину аналитики заданий вашему верному помощнику – AI-ассистенту! За счет встроенных в платформу AI-расширений и AI-ассистента разработчика GigaCode вы можете за пару минут провести аналитику кода и значительно облегчить процесс проверки работ.
Переходите на GitVerse и пробуйте новый инструмент!
⚡️Как проектировать базы данных так, чтобы впоследствии не приходилось тушить пожары в результате не оптимально заложенных основ?
👉 Приглашаем на курс "PostgreSQL для профессионалов", который обеспечит глубокое погружение в PostgreSQL!
На курсе вы:
- Научитесь настраивать кластер PostgreSQL на оптимальную производительность
- Организуете систему резервного копирования
- Научитесь выяснять причины сбоев, блокировок и deadlock и оперативно решать эти проблемы
- Сможете использовать индексы, джойны и статистику для оптимизации производительности
- Освоите синтаксис и особенности работы в PostgreSQL
- Изучите пути решения проблем работы с большими объемами данных в PostgreSQL
Записывайтесь на курс уже сейчас и получите скидку!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Знание DWH и dbt – это must have для уровня middle/senior-аналитика и инженера как на российском, так и на международном рынке.
Хотите освоить эти инструменты?
Попробуйте симулятор Data Warehouse Analytics Engineer на базе dbt для инженеров и аналитиков данных.
Уникальный формат обучения:
⚡️ максимум прикладных практических навыков
⚡️ браузерная IDE для запуска проектов dbt
⚡️ геймифицированные задания с подробным описанием и подсказками
⚡️ экспресс-квизы для быстрого запоминания
Вас ждут более 100 задач из разных бизнес-сфер, которые вы возьмете в портфолио, например:
✅ Статистика поездок на самокатах - вы сможете выстроить аналитический пайплайн из таблиц и представлений, который выдает общую и дневную статистику поездок с учетом данных пользователей, и покрыть его тестами качества данных и документацией
✅ Аналитика ивентов приложения - вы разработаете SQL-пайплайн, который будет инкрементально очищать и обрабатывать таблицу событий из мобильного приложения, обогащать ее данными поездок и пользователей и в конечном итоге представлять продуктовые метрики
✅ Анализ финансовых данных - поможете финансовым аналитикам обработать данные в Excel с помощью SQL, dbt и аналитической in-memory базы данных DuckDB, не передавая данные в сеть
✅ Создание аналитической платформы - выступите в роли инженера аналитики и развернёте аналитические dbt-пайплайны с планировщиком, мониторингом и централизованным git-репозиторием для всей команды аналитиков
Первые 4 задачи доступны в демо-доступе бесплатно.
➡️Получить демо-доступ сейчас
Реклама. ООО "Инженеркатех" ИНН 9715483673 erid:LjN8KH4pk
Создание микросервиса
Присоединяйтесь к нашему открытому уроку и погрузитесь в основы разработки микросервисов
🚀На вебинаре вы узнаете:
1. Основные принципы проектирования микросервисов: разделение на небольшие независимые компоненты, которые взаимодействуют через API.
2. Способы интеграции микросервисов с помощью REST API, gRPC или очередей сообщений (RabbitMQ, Apache Kafka).
3. Подходы к тестированию, отладке и мониторингу микросервисов для обеспечения их корректной работы в продакшене.
Практика: Расскажем, как проектировать микросервисную архитектуру, выбирать технологии и инструменты для её реализации.
👉 Регистрация и подробности о курсе «Архитектура и шаблоны проектирования»
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Новый уровень продуктивной разработки: добро пожаловать на платформу GitVerse
На платформе для работы с исходным кодом GitVerse можно легко и удобно организовать разработку любых проектов: писать и проверять код, автоматизировать CI/CD-процессы, общаться с единомышленниками и стать частью open source сообщества.
Что еще могут пользователи GitVerse:
– переносить проекты с других git-площадок в один клик;
– размещать открытые и приватные репозитории, работать самостоятельно и в командах;
– управлять проектами с помощью удобных досок и карточек, назначать роли, ревьюеров и делать все процессы прозрачными;
– делегировать рутинные задачи AI-ассистенту GigaCode, чтобы посвятить время по-настоящему интересным задачам!
Регистрируйтесь на платформе GitVerse и повышайте эффективность разработки!
Вопрос на SQL собеседовании.
Какая ошибка в этом запросе?UPDATE books SET sales_1999 >
(SELECT SUM(qty * price)
FROM sales
WHERE sales.book_id = books.id
AND sales.date BETWEEN '01/01/1999' AND '12/31/1999')
Задача SQL.
Есть 2 таблицыEMPLOYEES (Сотрудники)
- картинка номер 1 (верхняя) TASK (Задание)
- картинка номер 2 (нижняя)
Задача. Напишите SQL запрос.
Есть таблица transactions - картинка номер 1 (верхняя)
Где cash_flow — это выручка минус затраты за каждый день.
Нужно написать запрос, чтобы получить нарастающий итог для денежного потока каждый день таким образом, чтобы в конечном итоге получилась таблица в такой форме - картинка номер 2 (нижняя)
Ответ:
SELECT date, cash_flow,
SUM(cash_flow) OVER (ORDER BY date ASC) AS cumulative_cf
FROM transactions;