14500
Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных Связь: @devmangx РКН: https://clck.ru/3H4Wo3
Объяснение JOIN, которое мы заслужили 😄
👉 @SQLPortal
SQL-совет для начинающих
Не используйте SELECT * в реальных проектах. Вместо этого явно указывайте только те столбцы, которые действительно нужны:
SELECT column1, column2
FROM table
WHERE ...;
Полезное для разработчиков: SQL vs NoSQL простыми словами
Не знаете, какую базу данных выбрать для своего проекта? Эта статья поможет разобраться в ключевых отличиях SQL и NoSQL: модели данных, схемах, масштабировании, производительности, транзакциях и типичных сценариях использования.
Материал сопровождается понятными схемами, примерами запросов и сравнительными таблицами, поэтому отлично подойдет как новичкам, так и разработчикам, которые готовятся к собеседованиям или изучают System Design.
👉 @SQLPortal
Postgres CONCAT_WS удобно собирает строку даже если есть NULL:
SELECT CONCAT_WS(' ', first_name, middle_initial, last_name);John T Smith
John Smith
Золотое правило SQL: Всегда используйте WHERE перед GROUP BY.
Неправильно:
SELECT Department, COUNT(*)
FROM Employees
GROUP BY Department
WHERE Salary > 50000;
WHERE должен идти до GROUP BY.SELECT Department, COUNT(*)
FROM Employees
WHERE Salary > 50000
GROUP BY Department;
WHERE сначала отбирает только нужные строки. Затем GROUP BY группирует уже отфильтрованные данные.FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
300+ практических задач: подарок тем, кто изучает SQL
Если хотите научиться писать SQL не только по теории, но и на практике, попробуйте SQL Climber.
Платформа предлагает более 300 интерактивных заданий разного уровня сложности от простых SELECT-запросов до более сложных тем с JOIN, агрегатными функциями и подзапросами.
Каждое задание проверяется автоматически, поэтому можно сразу увидеть результат и исправить ошибки. Отличный ресурс для новичков, подготовки к собеседованиям и регулярной практики SQL.
👉 @SQLPortal
НОВОЕ: Durable Functions в PostgreSQL
pg_durable это расширение для PostgreSQL. Состояние рабочего процесса (workflow), очередь, повторные попытки и восстановление хранятся в Postgres, а для обеспечения надёжности, высокой доступности (HA), резервного копирования и восстановления используются встроенные возможности Postgres.
👉 @SQLPortal
Ловите исчерпывающее руководство по подготовке к SQL собеседованию
Если впереди SQL-собес и руки уже холодеют от волнения — не парься! В этом гайде собраны топовые вопросы, разборы и лайфхаки, которые помогут уверенно писать запросы и понимать, что от тебя хотят рекрутеры
Всё по полочкам и максимально доступно 📚
👉 @SQLPortal
SQL-совет, который должен знать каждый новичок
Используйте возможности оператора WHERE.
Вместо того чтобы загружать все данные о продажах компании, сразу отфильтруйте только нужные записи:
SELECT * FROM sales
WHERE region = 'Abuja'
AND year = 2026;
WHERE там, где это возможно, сделает ваши SQL-запросы более эффективными и профессиональными.
Руководство по SQL
Это руководство охватывает различные аспекты, начиная с основ SQL и до более сложных тем.
Материал дополнен практическими примерами, которые способствуют лучшему усвоению информации.
👉 @SQLPortal
Полезная находка для работы с SQL
Тулза «Actually Explain» автоматически визуализирует PostgreSQL-запросы в виде интерактивных схем, помогая разобраться в JOIN'ах, подзапросах и связях между таблицами.
Забираем за лайк 📖
👉 @SQLPortal
Отличная находка бесплатная и удобная IDE для работы с SQL базами
Работает с основными СУБД: SQLite, Postgres, MySQL. Поддерживает вкладки, автодополнение, подсветку синтаксиса, историю запросов и множество других полезных функций.
Если часто шаришься по базам эта штука экономит нервы и время ⌨️
👉 @SQLPortal
Потрясающий инструмент для работы с базами данных SQL «RunSQL»
Онлайн-песочница без установки, где можно создавать таблицы и запросы, обмениваться результатами с командой и работать с MySQL, PostgreSQL и SQL Server
Платформа поддерживает визуальное проектирование схем данных, загрузку CSV-файлов и совместное редактирование в реальном времени
И главное он абсолютно бесплатен 👍
👉 @SQLPortal
Откопал полезную платформу для подготовки к собесам «DataLemur»
Коллекция практических задач по SQL, статистике, машинному обучению и Python, предназначенных для подготовки к собеседованиям в крупных компаниях в сфере аналитики данных и data science
Практикуйся прокачивай свои скиллы и уверенно проходи интервью в Google, Amazon и других гигантах 😎
👉 @SQLPortal
Принёс полезную шпаргалку по SQL: основы, JOIN-запросы и агрегация
Изучите базовые операции SQL: выборку данных, объединение таблиц с помощью JOIN, агрегирование с функциями COUNT, AVG, SUM и создание подзапросов. Эта шпаргалка станет вашим надежным помощником в ежедневной работе с SQL ✏️
Полная PDF версия тут ⬇️
👉 @SQLPortal
Учимся читать SQL SELECT
Статья доступно объясняет принцип работы SELECT, представляя его как конвейер. Каждый этап — это ключевое слово (FROM, JOIN, WHERE и т.д.), которое преобразует данные
Подача материала очень наглядная, только самая необходимая практическая информация 📚
👉 @SQLPortal
А кто-о-о это сделал: они полностью переписали PostgreSQL на Rust и он уже проходит 100% официальных тестов PostgreSQL 😔
Важно: это не форк, а полностью новая реализация с нуля на Rust, которая на данный момент:
• Проходит все 46 066 запросов из regression suite PostgreSQL 18.3.
• Совместима на уровне диска (можно запустить её напрямую с вашим текущим каталогом данных).
• Имеет рабочее демо в браузере.
Цель проекта — сделать одну из самых сложных баз данных в мире значительно проще для модификации, расширения и оптимизации изнутри, используя Rust и AI-assisted programming.
И самое безумное: уже существует WIP-версия (пока не опубликована), которая обещает быть на 50% быстрее на транзакционных нагрузках и примерно в 300 раз быстрее на аналитических нагрузках.
https://github.com/malisper/pgrust
👉 @SQLPortal
Не пиши в SQL = NULL или != NULL
Для NULL всегда используй IS NULL / IS NOT NULL
NULL это “нет значения / неизвестно”, и обычные операторы сравнения (=, !=, <, >) с ним не работают, потому что NULL не равен, не больше и не меньше вообще ничего.
= / != сравнивают значения. А NULL это не значение, а отсутствие значения. Поэтому IS / IS NOT проверяют именно наличие или отсутствие значения.
👉 @SQLPortal
Интерактивное разъяснение про B-деревья
Это не просто статья, а интерактивное руководство: можно шаг за шагом смотреть, как устроено B+Tree, как происходит поиск, вставка и почему структура остаётся сбалансированной. Очень наглядно показывает, как индексы реально работают внутри БД
Один из лучших способов наконец-то сложить картинку в голове 👍
👉 @SQLPortal
Не используйте ELSE 0 вместе с COUNT и CASE
Использование ELSE 0 - очень частая ошибка у новичков, когда они комбинируют функцию COUNT с выражением CASE. Обычно это происходит из-за непонимания того, как именно COUNT работает при применении к столбцу.
Когда используется COUNT(column), функция считает все значения, которые не равны NULL, включая нули. Это значит, что если в выражении CASE указан ELSE 0, каждая строка, не попавшая под условие, превращается в значение 0. В результате такие строки тоже попадают в подсчёт.
Вот наивный пример:
sql id="g4suvd"
SELECT
Department,
COUNT(CASE
WHEN Status = 'Active' THEN EmployeeID
ELSE 0
END) AS ActiveEmployees
FROM Employees
GROUP BY Department;
0, а это валидное значение, поэтому оно тоже учитывается в COUNT. Из-за этого результат может получиться вводящим в заблуждение.ELSE. Когда ветка ELSE опущена, выражение CASE возвращает NULL для строк, которые не соответствуют условию. А так как COUNT() игнорирует NULL, будут посчитаны только строки, которые действительно удовлетворяют условию. Вот правильный вариант:sql id="vxa5np"
SELECT
Department,
COUNT(CASE
WHEN Status = 'Active' THEN EmployeeID
END) AS ActiveEmployees
FROM Employees
GROUP BY Department;
NULL, и COUNT() естественным образом исключает их из подсчёта. В итоге запрос получается чище, а подсчёт корректно отражает только те значения, которые реально соответствуют условию.
SQL-совет, который должен знать каждый новичок
Не используйте SELECT * в реальных проектах.
Вместо этого явно указывайте только те столбцы, которые действительно нужны:
SELECT FirstName, Salary, Department
FROM Employees
WHERE Department = 'Sales';
SELECT * допустимо при быстром исследовании данных или в учебных примерах, но в production-коде считается плохой практикой.
Некоторые SQL-грабли, на которые до сих пор наступают даже сеньоры (мне тоже иногда приходится лезть в доки и перепроверять):
1. = NULL никогда не бывает true. Используй IS NULL / IS NOT NULL (трехзначная логика: true, false, unknown).
2. NOT IN (...) + один NULL в списке может вернуть ноль строк. Чаще безопаснее NOT EXISTS.
3. LEFT JOIN + фильтр в WHERE превращается в INNER JOIN. Фильтры по джойну клади в ON.
4. COUNT(col) пропускает NULL, а COUNT(*) нет. Из-за этого метрики потом “магически” не сходятся.
5. NULL ломает конкатенацию и сравнения. Используй COALESCE осознанно.
👉 @SQLPortal
Наглядное объяснение операций соединения в SQL.
👉 @SQLPortal
Бесплатные курсы по «Data Science» от Kaggle Learn
Бесплатные курсы по анализу данных, машинному обучению, Python, SQL и другим инструментам data science. Построены по принципу: «минимум теории, максимум кода»
Все задания выполняются в Jupyter ноутбуках прямо в браузере и есть система автоматической проверки 👍
👉 @SQLPortal
Совет по SQL: Если вы только начинаете изучать SQL, не используйте SELECT * без необходимости.
Лучше всегда явно указывайте только те столбцы, которые действительно нужны. Это даст сразу несколько преимуществ:
• Запросы будут выполняться быстрее.
• Будет передаваться меньше лишних данных.
• Код станет понятнее и его будет проще поддерживать.
• Вы лучше поймёте структуру таблицы и то, с какими данными работаете.
Небольшая привычка, которая со временем приносит большую пользу.
👉 @SQLPortal
SQL Tip: использование ORDER BY с несколькими столбцами
При использовании ORDER BY с несколькими столбцами база данных сначала сортирует весь результат по первому указанному столбцу (в данном примере — sales).
В результате формируются группы строк с одинаковым значением этого столбца. Например, Mira и Bob попадают в одну группу, потому что у обоих значение sales равно 12 000.
После этого применяется сортировка по второму столбцу, которая используется как критерий для разрешения совпадений.
В данном случае строки сортируются по столбцу age в порядке возрастания (ASC), поэтому Mira (30 лет) будет расположена перед Bob, который старше. Такой принцип применяется ко всем строкам, у которых совпадает значение первого столбца сортировки.
Что если совпадают значения и во втором столбце? Если одинаковыми оказываются значения и второго столбца, ситуация зависит от конкретной СУБД. В небольших наборах данных некоторые базы данных могут сохранить порядок вставки записей.
Однако в большинстве случаев, особенно при работе с большими и сложными наборами данных, порядок строк с полностью одинаковыми значениями сортируемых столбцов не гарантируется и может быть произвольным.
Вывод: если вам важен полностью предсказуемый порядок результатов, добавляйте в ORDER BY дополнительный столбец с уникальными значениями (например, id). Это гарантирует стабильную сортировку.
👉 @SQLPortal
День 8 из серии «20 дней изучения основ SQL для начинающих».
Многие начинающие разработчики путают операторы WHERE и HAVING.
На самом деле разница довольно проста:
• WHERE фильтрует отдельные строки до выполнения группировки (GROUP BY).
• HAVING фильтрует уже сформированные группы после применения агрегатных функций.
Поняв эту ключевую концепцию, вы сможете создавать гораздо более мощные и гибкие SQL-запросы для построения отчётов и анализа данных.
Сохраните эту шпаргалку — она обязательно пригодится вам в изучении SQL.
👉 @SQLPortal
День 7 из серии «20 дней изучения основ SQL для начинающих».
Сырые данные часто содержат слишком много информации, чтобы сразу увидеть закономерности.
Оператор GROUP BY помогает объединить тысячи строк в понятные сводные результаты и получить ценные инсайты.
Научитесь агрегировать данные с помощью:
• COUNT() — подсчёт количества записей
• SUM() — вычисление суммы
• AVG() — расчёт среднего значения
• Группировка по нескольким полям (GROUP BY по нескольким столбцам)
Освоив GROUP BY, вы сможете строить отчёты, анализировать данные и получать сводную информацию всего несколькими SQL-запросами.
Сохраните эту шпаргалку — GROUP BY является одним из самых важных навыков, которые нужно освоить при изучении SQL.
👉 @SQLPortal
День 6 из серии «20 дней изучения основ SQL для начинающих».
Сырые данные сами по себе не дают ответов на бизнес-вопросы. Это делают агрегатные функции SQL.
Освойте эти 5 базовых функций:
• COUNT() — подсчёт количества записей
• SUM() — вычисление суммы
• AVG() — расчёт среднего значения
• MIN() — поиск минимального значения
• MAX() — поиск максимального значения
Освоив их, вы научитесь превращать набор строк в полезную аналитику и получать ценные инсайты из данных.
Сохраните эту шпаргалку по SQL, чтобы всегда иметь её под рукой.
👉 @SQLPortal
День 5 из серии «20 дней изучения основ SQL для начинающих»
Данные становятся по-настоящему полезными, когда они правильно упорядочены.
Сортировка помогает:
• находить лидеров и лучшие результаты;
• выявлять тенденции;
• быстрее анализировать данные.
Освойте эти 6 способов сортировки в SQL, и ваши запросы сразу станут более эффективными и информативными.
Сохраните эту шпаргалку, чтобы вернуться к ней позже.
👉 @SQLPortal