sql_ready | Unsorted

Telegram-канал sql_ready - SQL Ready | Базы Данных

7786

Авторский канал про Базы Данных и SQL Ресурсы, гайды, задачи, шпаргалки. Информация ежедневно пополняется! Автор: @energy_it

Subscribe to a channel

SQL Ready | Базы Данных

ALL и ANY в SQL — учимся использовать для сравнения с подзапросами!

Эти операторы предназначены для сравнения результатов одного SELECT с результатами второго SELECT из подзапроса, что может быть удобно в некоторых случаях: если подзапрос возвращает небольшое количество строк или когда нужно сравнить значение хотя бы с одним значением из подзапроса.

Представим, что нам нужно найти все продукты, цена которых выше, чем цена любого продукта в категории Discount:

SELECT product, price 
FROM products
WHERE price > ALL (SELECT price FROM products WHERE category = 'Discount');


Теперь найдем всех клиентов, заказавших хотя бы один продукт с ценой выше 1000 рублей:
SELECT DISTINCT customer_id 
FROM orders
WHERE product_id = ANY (SELECT product_id FROM products WHERE price > 1000);


И найдем всех клиентов, которые заказывали продукты из определенной категории:
SELECT DISTINCT customer_id
FROM orders
WHERE product_id = ANY (SELECT product_id FROM products WHERE category = 'Electronics');


🔥 Но помните, что использование ALL и ANY возможно только с подзапросами и может быть неэффективным, если подзапрос возвращает большое количество строк.

➡️ SQL Ready | #практика

Читать полностью…

SQL Ready | Базы Данных

🖥 Полезнейшая статья от TheCode, где показано, как собрать полноценный проект с использованием SQLite!

В этой статье:

• SQLite в браузере с помощью sql.js
• Веб-приложение с локальным сохранением данных
• Интерфейс с поддержкой SQL-запросов

🔊 Советую прочитать на TheCode!


➡️ SQL Ready | #статья

Читать полностью…

SQL Ready | Базы Данных

🖥 INSERT ON CONFLICT — решаем конфликты элегантно!

INSERT ON CONFLICT очень полезен в случаях, когда нужно вставить новую запись в таблицу, но если запись с таким же уникальным ключом уже существует — нужно обновить эту запись.

Следует использовать:

• Для сокращения запросов — когда вместо двух запросов (SELECT + INSERT/UPDATE) нужно выполнить только один.

•
Для оптимизации — производительности и минимизации количества запросов к базе данных.

• Для конкурентный доступа — когда нужно избежать проблем с конкурентным доступом.


🔥 — если узнал новое
🤝 — если уже пользовался

➡ SQL Ready | #гайд

Читать полностью…

SQL Ready | Базы Данных

Materialized Views — решение для сложных аналитических запросов!

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

Синтаксис создания представления:

CREATE MATERIALIZED VIEW daily_sales_summary AS


Далее мы по сути пишем обычный запрос с учетом данных, которые нам понадобятся в нашем представлении:
SELECT
DATE_TRUNC('day', order_date) AS sale_day,
SUM(amount) AS total_sales
FROM orders


Теперь выберем записи о продажах за последний месяц:
WHERE created_at > NOW - INTERVAL '30 days'


DATE_TRUNC используем для округления момента продажи до дня, чтобы затем группировать продажи по дням:
GROUP BY DATE_TRUNC('day', order_date);


Из минусов materialized views — необходимость их постоянного обновления, иначе данные могут быть неактуальными:
REFRESH MATERIALIZED VIEW daily_sales_summary;


Materialized views физически сохраняются на диске и занимают место. Используйте этот инструмент, если ваши аналитические запросы действительно сложные и выполняются медленно.

➡ SQL Ready | #практика

Читать полностью…

SQL Ready | Базы Данных

😮 Добавлена новая база слитых курсов на 800ГБ:

Python:
/channel/+p3Xjk1JM6-RhMDYy

Программирование:
/channel/+mF35K2cer3VhNzMy

Графика и дизайн:
/channel/+VU3Y96_H5Xs0Y2Vi

Frontend и Web:
/channel/+RE1oXzjJznExYTBi

Читать полностью…

SQL Ready | Базы Данных

🖥 Фильтруем выборку грамотно — разница WHERE и HAVING

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

•
WHERE — фильтрует строки на основе заданного условия. Работает перед агрегацией и предназначен для исключения неподходящих строк.

• HAVING — фильтрует сгруппированные записи, работает с агрегатными функциями после WHERE. Нужен именно для фильтрации групп, а не строк, как WHERE.

🔥 — если узнал новое
🤝 — если уже пользовался

➡ SQL Ready | #метод

Читать полностью…

SQL Ready | Базы Данных

👩‍💻 CS50 - Введение в Программирование (Гарвард)

Это введение в основы компьютерных наук, созданный профессором Гарвардского университета Дэвидом Маленки. Он охватывает ключевые концепции программирования и алгоритмов и является одним из самых популярных онлайн-курсов по программированию.

Ссылочка на плейлист: YouTube 🖤


➡ SQL Ready | #курс

Читать полностью…

SQL Ready | Базы Данных

Practice SQL — образовательный сайт для обучения и практики SQL-запросов, предлагающий задачи и проверки в реальном времени.

📌 Оставляю ссылочку: sql-practice.com

➡️ SQL Ready | #ресурс

Читать полностью…

SQL Ready | Базы Данных

🖥 Полезная шпаргалка по типам полей в SQL. Полезно помнить, какие есть поля при описании структуры таблицы)

В зависимости от данных, хранимых в таблице, нужно разделять их на разные типы. Где-то должно быть поле с датой, а где-то с timestamp. Где-то VARCHAR, а где-то TEXT. Это важно учитывать при работе с DDL в SQL.

➡ SQL Ready | #шпора

Читать полностью…

SQL Ready | Базы Данных

🖥 Собираем лояльных клиентов!

Дана таблица заказов интернет-магазина, связанная с таблицей покупателей внешним ключом через customer_id. Задача собрать данные о пользователях, совершивших более 2-х заказов за последнюю неделю.

В этой задаче:

• MIN, MAX, SUM, COUNT — агрегируем данные о пользовательских заказах.

•
Используем JOIN — связываем таблицы заказов и пользователей.

• GROUP BY, HAVING и ORDER BY — группируем по покупателям и фильтруем по количеству заказов.


Такие запросы помогают сегментировать пользователей по частоте и сумме покупок — это основа для построения отчётности, динамики и анализа поведенческих паттернов.

➡ SQL Ready | #задача

Читать полностью…

SQL Ready | Базы Данных

🖥 Индексы — ключ к быстрому SQL. Особенно полезны при большом объёме данных и частых фильтрациях!

Правильно выбранный тип и структура индекса значительно ускоряют SELECT-запросы, но могут замедлять INSERT и UPDATE. Всегда проверяй эффективность через EXPLAIN ANALYZE.

➡ SQL Ready | #шпора

Читать полностью…

SQL Ready | Базы Данных

🖥 Фильтруем с умом: GROUP BY и HAVING в SQL!

Иногда простого WHERE недостаточно — нужно сгруппировать данные и уже после этого фильтровать. Именно для этого и существует связка GROUP BY + HAVING.

Что важно знать:

• GROUP BY группирует строки по полям и позволяет применять агрегатные функции.

• HAVING отбирает только те группы, которые соответствуют условиям — удобно, когда фильтровать нужно по суммам или количеству

• HAVING работает даже без GROUP BY — если фильтровать агрегат по всей таблице.


🔥 — если понял как работает
🤝 — если давно используешь


➡ SQL Ready | #гайд

Читать полностью…

SQL Ready | Базы Данных

🖥 Нашел курс из 10 лекций по самым востребованным темам в SQL!

В ходе курса вы познакомитесь как с простейшими конструкциями SQL, так и с транзакциями, практиками бэкапов, восстановления и репликации. Также курс затрагивает темы проектирования схем БД, хранимых процедур, агрегатных и оконных функций, управления блокировками и многое другое.

Ссылочка на плейлист: YouTube 🖤


➡ SQL Ready | #курс

Читать полностью…

SQL Ready | Базы Данных

📊 Параллельное программирование

Лекция даёт хорошую базу для понимания современных многозадачных систем. На первой лекции разбирали основы параллельных вычислений, познакомились с ключевыми понятиями — процессы, потоки, параллелизм и конкурентность.

Ссылочка на плейлист: YouTube 🖤


➡️ SQL Ready | #курс

Читать полностью…

SQL Ready | Базы Данных

☕️ Познавательная статья с Хабра, в которой автор реализует полноценный SQL‑пайплайн когортного анализа!

В этой статье:
• Определение исходной точки на примере таблицы заказов
• Шаблон построения когорт и связывание с заказами через CTEs
• Разбор edge-кейсов, построение LTV по когортам и RFM-анализ с сегментацией


🔊 Продолжай чтение на Habr!


➡ SQL Ready | #статья

Читать полностью…

SQL Ready | Базы Данных

🥇 Пройди ЛЮБОЕ собеседование!

Большая база вопросов с реальных собеседований:

→ Тинькофф, Авито, Сбер, Озон, Яндекс, VK и еще 100+ компаний

→ 20+ направлений: Frontend, Backend, DevOps, QA, Mobile и другие

→ 60+ технологий: React, Python, Docker, Git, Java, Go, JavaScript и не только

Выбирай направление:

👩‍💻 C# 🤖 ML Engineer

👩‍💻 C/C++ 🖥 Data Science

👩‍💻 Java 👩‍💻 Python

🖥 PHP 👩‍💻 Frontend

👣 Rust 👣 Golang

👩‍💻 Node.js 💻 DevOps

👩‍💻 QA 👩‍💻 Android

👩‍💻 iOS 👩‍💻 Game Dev

🖥 Общее IT 👨‍💻 Вакансии

База обновляется еженедельно — всегда актуальные вопросы с последних собеседований.

💸 Хочешь оффер в Big Tech? Готовься с нами!

Читать полностью…

SQL Ready | Базы Данных

🖥 Завез вам шпаргалку по регулярочкам в SQL: оператор REGEXP для точечного поиска по шаблону!

REGEXP — инструмент, который удобно использовать, если требуется сложный и гибкий поиск по шаблону. Например, поиск по нескольким условиям или использование специальных символов и диапазонов.


➡ SQL Ready | #шпора

Читать полностью…

SQL Ready | Базы Данных

SQL Murder Mystery — это интерактивная игра, в которой нужно использовать SQL-запросы для расследования виртуального убийства.

Игрокам предоставляется доступ к базе данных с информацией о преступлении, и они должны применять свои навыки работы с SQL для поиска улик, анализа данных и выявления преступника.


📌 Ссылочка: mystery.knightlab

➡️ SQL Ready | #ресурс

Читать полностью…

SQL Ready | Базы Данных

Я пожалею об этом, но ладно...

В общем сливаю вам самый топовый источник слитых курсов, бесплатных книг, программ, лучших шпаргалок для разработчиков.

Если после этого не сможешь стать Сениором, то ты безнадежен!

Вот ссылка - /channel/+VHZ7JQpy8FU0OTUy

Читать полностью…

SQL Ready | Базы Данных

Репозиторий PostgreSQL Patterns Library!

Он идет с коллекцией шаблонов и практик для оптимизации запросов и работы с базами данных PostgreSQL, направленный на повышение производительности и упрощение разработки.

Оставляю ссылочку: Github 📱


➡️ SQL Ready | #репозиторий

Читать полностью…

SQL Ready | Базы Данных

TutorialsPoint — это обширная платформа с уроками по множеству технологий, где курс по MySQL предлагает пошаговое руководство по основам работы с базами данных, написанию запросов и управлению данными.

📌 Оставляю ссылочку: tutorialspoint.com

➡️ SQL Ready | #ресурс

Читать полностью…

SQL Ready | Базы Данных

🖥 SQL-constraints — разбираемся в ограничениях на столбцы!

Правильное использование этих ограничений помогает избежать нежелательных ситуаций, например, нескольких пользователей с одинаковыми id или ссылки на несуществующих записей в других таблицах, отсутствия обязательных данных.


➡ SQL Ready | #шпора

Читать полностью…

SQL Ready | Базы Данных

🖥 Находим хозяев и их питомцев!

Исходя из таблиц хозяев и питомцев, нужно вернуть имя хозяина, его питомца и разницу между их возрастами. Но при этом нужно предусмотреть, что у хозяина может питомец может потеряться.

В этой задаче:

• CASE — для ситуаций, если у хозяина нет питомца

•
LEFT JOIN — выбираем все записи из таблицы хозяев

• ORDER BY — сортируем по имени хозяина и разнице возрастов с питомцами


🔥 — если узнал новое
🤝 — если решил сам

➡ SQL Ready | #задача

Читать полностью…

SQL Ready | Базы Данных

🖥 Связываем таблицы профессионально!

Сегодня рассмотрим возможные варианты связи записей из разных таблиц друг с другом по их логическим отношениям. Это важно понимать, чтобы правильно проектировать схемы баз данных и знать, как это устроено под капотом.

Типы связей:

• One To Many — самый распространенный тип, когда у одной записи может быть несколько соответствий в другой таблице

•
One To One — связь для записей со строгим отношением: у одной записи только одно уникальное соответствие

• Many To Many — например, многие студенты могут слушать лекции многих преподавателей


🔥 — если узнал новое
🤝 — если уже пользовался

➡ SQL Ready | #гайд

Читать полностью…

SQL Ready | Базы Данных

🖥 Работа с функциями NULLIF и DATEPART

• NULLIF — сравнивает два значения и возвращает NULL, если они совпадают; иначе возвращает первое значение. Полезно для замены «пустых» или «невалидных» данных на NULL.

• DATEPART — извлекает из даты нужную часть (год, месяц, день, час и т.д.) и возвращает её числовым значением; удобно для агрегирования и фильтрации по отдельным компонентам даты.

🔥 — если узнал новое
🤝 — если уже пользовался


➡ SQL Ready | #метод

Читать полностью…

SQL Ready | Базы Данных

📊 Изучение программирования. SQL

SQL - язык программирования для манипулирования и управления реляционными базами данных, от простых Email-ов и логинов пользователей до хранения паролей и построения сложных схем. Обо всем этом и о многом другом - в этом курсе!

Ссылочка на плейлист: YouTube 🖤


➡️ SQL Ready | #курс

Читать полностью…

SQL Ready | Базы Данных

🖥 Выбираем топ-3 активных пользователей!

Даны таблицы пользователей и операций по счету. Нужно написать SQL-запрос, который выводит топ-3 самых активных пользователей по общей сумме переводов за последние 30 дней.

В этой задаче:

• Агрегация по сумме переводов — подсчитаем, сколько всего перевел каждый пользователь.

•
Соединим таблицы через JOIN — для связи пользователей с переводами.

• GROUP BY — группируем записи по пользователям.


🔥 — если узнал новое
🤝 — если знал
решение

➡ SQL Ready | #задача

Читать полностью…

SQL Ready | Базы Данных

🥺 Маст хэв статья с Хабра, в которой вы узнаете, как визуализировать статистику использования ваших индексов!

В этой статье:
• Подготовка окружения с помощью plotly, numpy, pandas и kaleido
• Скрипт для создания тепловой диаграммы в виде TreeView
• Анализ степени активности таблиц и их индексов


🔊 Подробное руководство лежит на Habr!


➡️ SQL Ready | #статья

Читать полностью…

SQL Ready | Базы Данных

☕️ Делюсь всемирным ресурсом исповедующий принцип соревновательного программирования — HackerRank!

Десятки челленджей в виде SQL-запросов по разным уровням сложности и темам: базовые или продвинутые запросы, выборки на агрегацию или с применением JOIN — выбирать тебе!

📌 Оставляю ссылочку: hackerrank.com

➡️ SQL Ready | #ресурс

Читать полностью…

SQL Ready | Базы Данных

🖥 Ленивые INSERTы или как эффективно мержить таблицы!

Рассмотрим два простых способа заполнения таблиц уже готовыми данными из другой таблицы:

•
SELECT INTO — создает новую таблицу и заполняет её данными, полученными из запроса. Столбцы новой таблицы получают имена и типы данных, связанные с выходными столбцами SELECT

• INSERT SELECT — заполняет указанную таблицу данными из указанной таблицы. При этом таблицы должны иметь одинаковую структуру столбцов

🔥 — если узнал новое
🤝 — если уже пользовался

➡ SQL Ready | #метод

Читать полностью…
Subscribe to a channel