10415
Самая большая библиотека бесплатных книг по SQL По всем вопросам- @haarrp @ai_machinelearning_big_data - machine learning @pythonl - Python @itchannels_telegram - 🔥 best it channels @ArtificialIntelligencedl - AI РКН: № 5037640984
💡 SQL-совет, который спасает от самой “хитрой” ошибки
Одна из самых коварных ситуаций в SQL - когда ты ожидаешь данные, а запрос возвращает 0 строк, хотя “всё правильно”.
Чаще всего причина - `NOT IN` + `NULL`.
Если в подзапросе есть хотя бы один NULL, то NOT IN ломает логику и не вернёт ничего.
Правило:
- ❌ Не используй `NOT IN` с подзапросами
- ✅ Используй `NOT EXISTS` или LEFT JOIN ... IS NULL
-- ❌ ПЛОХО: NOT IN ломается из-за NULL
SELECT *
FROM users u
WHERE u.id NOT IN (
SELECT user_id
FROM banned_users
);
Читать полностью…
SELECT *
FROM users u
WHERE NOT EXISTS (
SELECT 1
FROM banned_users b
WHERE b.user_id = u.id
);
🖥 Интерактивный SQL-тренажёр для аналитиков в телеграм боте:
Прокачай навыки на задачах, которые встречаются в реальной работе.
Бот в Telegram помогает тренироваться каждый день: задания обновляются, сложность растёт, а ошибки разбираются.
✔ практические кейсы
✔ удобный эмулятор работы Аналитика бесплатно
✔ пополняем задачами с реальных собеседований
✔ собираем фидбек и улучшаем тренажёр вместе с вами
Готов работать с данными уверенно? Попробуй симулятор и расти как аналитик.
t.me/Analitics_databot
SQL хитрый совет для про 💡
Используй COUNT(*) FILTER вместо CASE WHEN — быстрее, чище и читаемее.
❌ Как делают обычно:
SELECT
COUNT(CASE WHEN status = 'success' THEN 1 END) AS success_cnt,
COUNT(CASE WHEN status = 'error' THEN 1 END) AS error_cnt
FROM events;
Копировать код
SELECT
COUNT(*) FILTER (WHERE status = 'success') AS success_cnt,
COUNT(*) FILTER (WHERE status = 'error') AS error_cnt
FROM events;
SQL-совет 💡
Если в запросе используется IN (subquery) - почти всегда выгоднее заменить его на EXISTS.
❌ Часто медленно:
SELECT *
FROM orders o
WHERE o.user_id IN (
SELECT u.id FROM users u WHERE u.country = 'US'
);
SELECT *
FROM orders o
WHERE EXISTS (
SELECT 1
FROM users u
WHERE u.id = o.user_id
AND u.country = 'US'
);
IN может материализовать подзапрос целиком EXISTS работает как semi-join и рано останавливается
🔥 На stepik вышел курс, который учит Создавать настоящие AI-сервисы, а не просто запускать скрипты?
Этот практический курс по Python и FastAPI покажет, как собрать полноценное приложение с ИИ, базой данных, автогенерацией контента и Telegram-ботом.
Ты пройдёшь путь от первого HTTP-запроса до рабочего сервиса, который сам генерирует текст через ИИ, сохраняет данные, отправляет результаты по расписанию и отвечает пользователям.
Никакой теории ради теории - только практические шаги, из которых рождается реальный продукт.
🎁 48 часов действует скидка в 40% процентов
👉 Начать учиться на Stepik
🚀 SQL-совет:
Используйте computed (вычисляемые) колонки и индексы по ним, когда ваши запросы постоянно фильтруют или сортируют по функции.
Плохо:
WHERE LOWER(email) = 'user@mail.com'
Это ломает индекс — оптимизатор не может его использовать.
Лучше:
ALTER TABLE users
ADD email_lower AS LOWER(email) STORED;
CREATE INDEX idx_users_email_lower ON users(email_lower);
Теперь:
WHERE email_lower = 'user@mail.com'
Производительные или и выгодные базы данных в облаке
Безопасные, масштабируемые и отказоустойчивые базы данных — одна из ключевых потребностей любого проекта. Именно такие предлагает Selectel. СУБД под разные запросы: от универсальной PostgreSQL до поисковой и аналитической БД Opensearch
Новые клиенты сейчас могут получить до 30 000 бонусов на использование облачных баз данных Selectel. Провайдер гарантирует:
🔹Высокую производительность. Выбирайте оптимальную конфигурацию кластера на базе мощного железа и локальных NVMe-дисков.
🔹Надежность. Автоматические бесплатные бэкапы с восстановлением вплоть до секунды — на стороне Selectel. А создать отказоустойчивый кластер можно всего от двух нод и сэкономить до 33%.
🔹Гибкое масштабирование. При росте нагрузки можно поменять конфигурацию облачного сервера и количество реплик без простоя.
Успейте зарегистрироваться и оставить заявку на участие в акции, чтобы протестировать сервис бесплатно: https://slc.tl/y7zta
Реклама. АО "Селектел". erid:2W5zFH92NVE
🚨 SQL Никогда НЕ ДЕЛАЙ ТАК #sql
НИКОГДА НЕ ЛОМАЙ ИНДЕКСЫ ФУНКЦИЯМИ: не оборачивай индексируемые поля в функции внутри WHERE.
Как только ты пишешь LOWER(), CAST(), COALESCE() или любые вычисления по колонке — индекс перестаёт работать, и запрос падает в полное сканирование таблицы.
Это одна из самых тихих причин, почему запросы внезапно превращаются в тормоза.
Вместо этого приводи значения заранее или используй функциональные индексы.
Плохо: индекс по email НЕ используется
SELECT *
FROM users
WHERE LOWER(email) = 'user@example.com';
-- Хорошо: нормализуем значение заранее
SELECT *
FROM users
WHERE email = 'user@example.com';
-- Или создаём функциональный индекс (PostgreSQL)
CREATE INDEX idx_users_email_lower ON users (LOWER(email));
📘 Как PostgreSQL научился масштабироваться без боли
Менеджер буферов в PostgreSQL отвечает за кэширование 8KB-страниц диска в общей памяти фиксированного размера. Для поиска используется хеш-таблица (через BufferTag → buffer ID), а для удаления страниц — clock-sweep алгоритм.
Первые версии были предельно простыми — с глобальной блокировкой, что быстро приводило к узким местам под нагрузкой. За 30 лет система эволюционировала:
от единой глобальной блокировки
к блокировкам на каждый буфер и партицию
и, наконец, к атомарным операциям, обеспечивающим почти lock-free доступ к структурам памяти.
Это позволило резко снизить конфликтность и повысить масштабируемость в OLTP-нагрузках, сохранив устойчивость при работе с общей памятью.
Философия дизайна PostgreSQL — минимальное время удержания блокировок, абстракция аппаратных различий через атомики и постоянная оптимизация реальных узких мест по результатам профилирования.
Отличный блог-пост с хронологией ключевых вех и ссылками на важные коммиты за эти годы — по ссылке 👇
Подробности
🖥 Новый курс на Stepik - PostgreSQL для разработчиков: от основ к созданию API
Здесь на пальцах объясняют не только как писать SQL-запросы, а строить настоящие backend-сервисы с базой данных как у профи.
В этом курсе ты шаг за шагом создашь REST API на FastAPI + PostgreSQL:
от установки среды и первых таблиц - до масштабируемого приложения с безопасностью и CRUD-операциями.
🔹 На практике разберете:
• SQL-запросы, фильтры, агрегаты и подзапросы
• Связи между таблицами и нормализацию БД
• Взаимодействие Python и PostgreSQL
• Реализацию REST API и подключение базы
• Оптимизацию и разбор реальных задач с собеседований
⚡ После курса у вас будет свой работающий API-проект и реальные навыки работы с PostgreSQL в продакшене.
🎁 Сегодня дарим промокод –30% от цены: SQLISGREAT
🚀 Прокачаю свои знания: https://stepik.org/course/255542/
Как переписать и оптимизировать ваши SQL-запросы к Pandas на пяти простых примерах
Аналитики данных, инженеры и учёные одинаково знакомы с SQL. Язык запросов по-прежнему широко используется для работы с реляционными базами данных любого типа.
Однако, в настоящее время, всё больше и больше, особенно для аналитиков данных, растут технические требования, и ожидается, что люди, по крайней мере, знают основы языка программирования. При работе с данными Python и Pandas являются обычным дополнением к списку требований в описании вакансий.
Хотя Pandas может быть новым для людей, знакомых с SQL, концепции выбора, фильтрации и агрегирования данных в SQL легко переносятся в Pandas. Давайте рассмотрим в этой статье некоторые распространённые SQL-запросы и способы их написания и оптимизации в Pandas.
Читать
✔️ Математика в машинном обучении» - бесплатный курс, который предназначен для тех, кто хочет углубить свои знания в области математики, необходимой для понимания и применения методов машинного обучения и искусственного интеллекта.
Этот курс охватывает ключевые математические концепции, лежащие в основе современных алгоритмов машинного обучения, таких как линейная алгебра, теория вероятностей, статистика и оптимизация.
Курс
💡 SQL: быстрое нахождение первых или последних записей с DISTINCT ON !!!
В PostgreSQL есть полезный приём — DISTINCT ON, который позволяет взять первую строку в каждой группе по определённому полю.
SELECT DISTINCT ON (customer_id)
customer_id,
order_date,
amount
FROM orders
ORDER BY customer_id, order_date DESC;
⚡️SQL на собеседованиях: где тренироваться
Принесли вам отличный ресурс, который собрал огромное количество практических задач по SQL.
Там можно найти всё: от базовых упражнений до сложных вопросов, включая отдельный блок с заданиями от FAANG.
Но самое ценное здесь не сами вопросы, а структура подачи:
- Формулировка задачи в формате собеседования
- Подробное решение с объяснением
- Встроенный редактор, чтобы попробовать свои силы прямо на месте
И главное — доступ полностью бесплатный.
Начать тренироваться
⚡️ SQL от А до Я: руководство с примерами
Это гайд на 150 страниц для тех, кто хочет разобраться в SQL. Здесь есть всё: от базовых запросов до функций и сложных приёмов.
Руководство, которое поможет быстро освежить или подтянуть знания.
PostgreSQL: архитектура и тюнинг SQL-запросов
Погрузись в архитектуру и прокачай оптимизацию запросов одной из самых популярных open source СУБД – PostgreSQL.
🌐 В программе курса:
🤩 Разберем, как работают СУБД вообще и PostgreSQL в частности: что такое MVCC, ACID, WAL, LRU, PPC/TPC и другие фундаментальные понятия архитектуры баз данных
🤩 Получите теорию и практику EXPLAIN и EXPLAIN ANALYZE на разных типа запросов: без индексов, с индексами, index only, нормализованные и документ-ориентированные данные и json-поля, изменение параметров сессии/конфигурации для ускорения запросов
🤩 Изучите архитектуру хранения данных в PostgreSQL, типы и особенности индексов, а также получите полезные советы и трюки оптимизации БД
🤩 Получите свой собственный выделенный облачный PostgreSQL-сервер (8 vCPU, 12G RAM, 100G NVMe) – предоставляется БЕСПЛАТНО на время обучения + готовый e-commerce датасет TPC-H (миллион пользователей, несколько миллионов заказов на десятки гигабайт)
🗓 Старт курса: 22 января. 5 недель обучения.
Изучить программу и записаться можно здесь.
🤩Кто мы: R&D-центр Devhands, основатель школы Алексей Рыбак. Автор курса — Николай Ихалайнен, эксперт по СУБД (ex-Percona), со-основатель MyDB, энтузиаст открытого ПО.
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2Vtzqug1BVk
🖥 SQL-квест: фэнтезийное приключение для аналитиков данных
Представь фэнтези-мир, где заклинания - это SQL-запросы, а древние артефакты спрятаны в таблицах и JSON-документах.
🧙Ты - боевой дата-аналитик, который с помощью SQL, Python, ETL и визуализаций охотится за харизматичным злодеем Архивариусом Пакостусом, что ломает индексы, крадёт данные и готовит “шторм данных” на столицу.🔮
В каждом эпизоде тебя ждут: выборы с последствиями, хитрые задачи от простых SELECT до рекурсивных CTE и BigQuery, юмор, эпик и неожиданные повороты.
Хочешь проверить, сможешь ли ты спасти королевство не мечом, а запросами? Тогда добро пожаловать в SQL-квест.
🪄 Начать квест: https://uproger.com/sql-kvest-fentezijnoe-priklyuchenie-dlya-analitikov-dannyh/
Чем больше компания, тем больше вызовов 😱
Был десяток команд разработки – теперь их сотни. Единицы развертываний в день превращаются в тысячи.
Как в этом потоке сохранить контроль, прозрачность и управляемость? Как можно автоматизировать рутинные процессы? Разрозненные инструменты и отсутствие единой картины тормозят скорость и снижают качество доставки – что делать?
🎯Если у вас нет ответа на эти вопросы, вашей компании стоит внедрить IT-решение, которое станет "единым источником правды". Оно автоматизирует учет IT-компонентов, управление стендами и планирование поставок, сокращая время на рутину и повышая надежность процессов. Название такого решения – Digital Q.CMDB.
Диасофт посвятит этому решению вебинар, который состоится 23 декабря в 14:00 🗓
Эксперты познакомят вас с решением, расскажут про вызовы масштабирования и затронут практику: от бизнес-требований до поставки.
Welcome: регистрируйтесь по ссылке!
Реклама. ООО "ДИАСОФТ ЭКОСИСТЕМА". ИНН 9715403607.
🖥 Гайд по продвинутому профессиональному использованию SQL
В этом руководстве мы рассмотрим ключевые аспекты работы с SQL на практике. Начнём с сравнения популярных СУБД, затем перейдём к продвинутым приёмам аналитического SQL, оптимизации запросов, администрированию баз данных, и закончится всё интеграцией SQL с Python (SQLAlchemy, pandas и т.д.).
Для каждого раздела приведены примеры на реальных сценариях (интернет-магазин, CRM, аналитика продаж), код и полезные советы.
👉 Читать гайд
🚀 Новый продвинутый планировщик заданий для PostgreSQL - лучше, чем cron
Если устал от cron и временных триггеров, обрати внимание на pg_timetable:
✅ Сильный: гибкий, надёжный, с богатым функционалом
✅ Легко настраивается, понятен и прозрачен
✅ Позволяет:
• запускать SQL-задачи по расписанию
• отслеживать их статус и history
• обеспечивать graceful restart и защиту от сбоев
Идеален для рабочих баз, сложной логики задач и критичных приложений.
📦 Репозиторий: https://github.com/cybertec-postgresql/pg_timetable
#golang #postgresql #devops #golang
🖥 SQL СОВЕТ
Когда нужно взять по одному самому свежему событию на пользователя, не делай вложенные подзапросы с MAX и лишние JOIN, используй оконную функцию ROW_NUMBER по разделу и упорядочиванию, так запрос будет понятнее и часто быстрее на реальных данных.
Читать полностью…
SELECT *
FROM (
SELECT
user_id,
event_type,
created_at,
ROW_NUMBER() OVER (
PARTITION BY user_id
ORDER BY created_at DESC
) AS rn
FROM events
) t
WHERE rn = 1;
-- Для каждого user_id вернется только самое последнее событие
🖥 SQL большой гайд. Как правильно выбрать ORM
Эта статья - не про «как написать SELECT, а про настоящую инженерную работу: принципы нормализации, дизайн схем, практики оптимизации SQL, работа с транзакциями, и главное - как выбрать и использовать ORM так, чтобы он помогал, а не мешал.
Если тебе нужен инструмент, который выдержит рост проекта и не взорвётся через год, здесь ты найдёшь системный подход, проверенные шаблоны и практические примеры, которым уже доверяют зрелые инженерные команды.
Готовы? Тогда начинаем строить архитектуру, которую не стыдно масштабировать.
https://uproger.com/sql-bolshoj-gajd-kak-pravilno-vybrat-orm/
🔥 Hugging Face снова выкатили полезные материалы.
Вышел бесплатный плейбук о том, как изнутри строят SOTA-модели.
Без общих слов - только реальные решения и нюансы, которые обычно скрыты внутри исследовательских команд.
Это полноценный мастеркласс на 214 страниц для тех, кто хочет понимать, как устроены современные LLM.
Что внутри:
• Логика построения модели: зачем → что → как
• Как разработчики берут модель и по частям включают/выключают компоненты (или меняют их)
• Архитектура: ключевые выборы и trade-offs
• Искусство подбора и очистки данных
• Как проходит обучение моделей
• Пост-тренинг и RLHF в 2025
• Инфраструктура больших моделей
По первым страницам - уровень деталей как в Ultra-scale playbook.
Ссылка: https://huggingface.co/spaces/HuggingFaceTB/smol-training-playbook#designing-the-model-architecture
Видео: https://www.youtube.com/watch?v=LGzO-Mn0DJQ
#AI #LLM #MachineLearning #HuggingFace
@sql_lib - библиотека МЛ и ИИ книг
🖥 SQL за полтора часа в одном видео! Полный базовый курс по SQL. Базы данных курс для начинающих!
00:00:00 Введение
00:02:43 Платные курсы и что изучать дальше
00:04:55 Коротко об онлайн редакторе
00:07:11 Что такое база данных
00:08:10 Что такое CRUD
00:10:05 Запрос на создание первой таблицы
00:11:57 Типы данных у атрибутов(колонок) (DATA TYPES)
00:17:26 Прописываем атрибуты(колонки) первой таблицы
00:21:07 Создаем первую таблицу (CREATE TABLE)
00:21:38 Проверка на наличие таблицы при создании (IF NOT EXISTS)
00:22:18 Запрос на удаление таблицы(DROP TABLE)
00:22:33 Проверка на наличие таблицы при удалении(IF EXISTS)
00:22:57 Запрос на добавление объекта в таблицу (INSER INTO table)
00:23:35 Запрос на чтение(получение) объектов из таблицы(SELECT * FROM table)
00:24:18 Модификаторы для атрибутов(колонок) таблицы(NOT NULL, DEFAULT, UNIQUE)
00:29:26 Изменение уже существующей таблицы(ALTER TABLE, ADD, DROP, RENAME, MODIFY COLUMN)
00:36:08 Удаление объектов из таблицы(DELETE FROM table)
00:37:06 Редактирование объекта в таблице(UPDATE table)
00:39:03 Первичный ключ(PRIMARY KEY)
00:45:37 Композиция в бд
00:50:38 "Иностранный" ключ(FOREIGN KEY)
00:57:26 Индексы в бд(INDEX)
00:59:24 Готовим данные для темы алиас, юнион и слияние таблиц
01:03:30 Слияние таблиц(INNER JOIN)
01:06:02 Слияние таблиц(LEFT JOIN)
01:06:53 Слияние таблиц(RIGHT JOIN)
01:07:26 Слияние таблиц(FULL JOIN/OUTER JOIN) и Union
01:09:04 Алиас(table AS alias)
01:12:18 Select Distinct в SQL
01:13:42 AND OR NOT в SQL
01:16:18 ORDER BY и LIMIT в SQL
01:17:35 MIN и MAX в SQL
01:18:25 COUNT SUM AVG в SQL
01:19:29 LIKE в SQL
01:21:31 IN и BETWEEN в SQL
01:22:50 GROUP BY в SQL
01:25:17 EXISTS в SQL
01:27:37 ANY и SOME в SQL
01:29:00 INSERT INTO в SQL
01:30:40 Отношения в базе данных
01:32:11 Отношения один к одному
01:33:09 Отношения один ко многим
01:34:09 Отношения многие ко многим
01:37:10 Отношения один к одному и один ко многим "через"
01:39:10 SQL инъекции
источник
🖥 Полный гайд: защита от SQL-инъекций для разработчиков
SQL-инъекции остаются одной из самых частых и опасных уязвимостей в веб-приложениях. Ошибка в одном запросе — и злоумышленник получает доступ к базе данных, паролям и пользовательским данным.
В этом материале — полный практический разбор:
как именно происходят SQL-инъекции, какие ошибки разработчиков к ним приводят, как их распознать в коде и главное — как защититься.
Разберём реальные примеры на Python, PHP и Go, посмотрим, как атакующий «взламывает» запрос, и научимся писать безопасный код с параметризованными запросами и ORM.
Это не теория, а руководство, которое поможет понять уязвимость изнутри и навсегда закрыть её в своих проектах.
👉 Читать гайд
🖥 Гайд по PostgreSQL для продвинутых разработчиков
PostgreSQL – одна из самых мощных СУБД с открытым исходным кодом. Этот гайд подробно охватывает ключевые аспекты PostgreSQL: от внутренней архитектуры до приёмов оптимизации. Мы рассмотрим администрирование, производительность, расширения, инструменты, а также сравним популярные ORM для Python и Go. В конце приведён список продвинутых вопросов, часто встречающихся на собеседованиях.
🟠Гайд
Ресурсы, где можно подтянуть знания SQL ⚡️
⏩ https://mode.com/sql-tutorial/
Много бесплатных уроков для начинающих, идущих по нарастающей
⏩ https://www.kaggle.com/learn/intro-to-sql
https://www.kaggle.com/learn/advanced-sql
Короткие уроки от kaggle вводящие в курс дела, подойдут для повторения основ
⏩ https://www.sql-ex.ru/ лучший
🎮💾 DOOMQL: Мультиплеерный шутер на чистом SQL
DOOMQL — это уникальный шутер, полностью реализованный на SQL, использующий CedarDB. Проект возник как эксперимент: возможно ли создать игру в стиле DOOM, используя только SQL для рендеринга, игрового цикла и многопользовательской синхронизации? Ответ — да!
🚀Основные моменты:
- Чистый SQL рендерер с поддержкой рендеринга спрайтов и HUD.
- Мультиплеерная игра с синхронизацией и управлением состоянием через CedarDB.
- Легкость в изменении игрового состояния с помощью простых SQL-запросов.
- Поддержка читов, что добавляет интерес к игровому процессу.
- Минимальный клиент на Python для управления вводом и отображения.
📌 GitHub: https://github.com/cedardb/DOOMQL
#sql
🖥 Полный гайд по реальным SQL-вопросам с собеседований
Введение. Собеседования на позиции, связанные с данными (аналитики, инженеры, ученые данных), всё чаще включают нестандартные и продвинутые вопросы по SQL.
Большие технологические компании (Google, Amazon и др.) предъявляют высокие требования: важна не только правильность запроса, но и умение оптимизировать его и разбираться в реальных бизнес-данных.
В этом гайде мы разберем категории наиболее распространенных сложных SQL-задач с реальных собеседований – от платформ вроде DataLemur, LeetCode, StrataScratch – и подробно поясним решения.
Каждая задача сопровождена анализом: условие, оптимальный подход, используемые SQL-конструкции, возможные ошибки и финальное решение (для PostgreSQL и MySQL, с указанием различий где необходимо).
В конце добавлен отдельный раздел о современных базах данных, включая векторные БД (Pinecone, Weaviate, Milvus и др.), с примерами того, что могут спросить про них на собеседовании и как выглядят SQL-подобные запросы для работы с векторами.
📇 Структурированная SQL шпаргалка
➕Выборка одиночных и множественных значений;
➕Объединение и группировка;
➕Фильтрация данных;
➕Алиасы и джоины.
#sql #doc #cheatsheet