SQL_cheatsheet.pdf
754.9 KB
⚡️ SQL-шпаргалка, которая выручит в интервью, проекте и проде
Полный мастер-гайд по SQL в одном PDF: практичные примеры, чёткие объяснения и никакой воды.
Что внутри:
• 💬 Создание баз, таблиц и изменение схем
• 💬 Запросы любого уровня сложности: JOIN, GROUP BY, HAVING, PARTITION
• 💬 Подзапросы, CTE, оконные функции: ROW_NUMBER, RANK, DENSE_RANK
• 💬 VIEW, временные таблицы и работа с дубликатами
• 💬 Даты, строки, преобразования и агрегации
• 💬 Очистка данных, разбиение по разделителям
• 💬 UNION, INTERSECT, EXCEPT — управление сложными выборками
Затрагиваются и продвинутые кейсы:
• Парсинг адресов
• Кастомная сортировка
• Использование ISNULL и COALESCE
🧠 Это не просто набор команд — это концентрат боевого SQL-опыта.
Подходит для:
➡️ Подготовки к SQL-интервью
➡️ BI и аналитики
➡️ Web-разработки с базами
➡️ Встраивания SQL в проекты на Python, Go, Java и других языках
Полный мастер-гайд по SQL в одном PDF: практичные примеры, чёткие объяснения и никакой воды.
Что внутри:
• 💬 Создание баз, таблиц и изменение схем
• 💬 Запросы любого уровня сложности: JOIN, GROUP BY, HAVING, PARTITION
• 💬 Подзапросы, CTE, оконные функции: ROW_NUMBER, RANK, DENSE_RANK
• 💬 VIEW, временные таблицы и работа с дубликатами
• 💬 Даты, строки, преобразования и агрегации
• 💬 Очистка данных, разбиение по разделителям
• 💬 UNION, INTERSECT, EXCEPT — управление сложными выборками
Затрагиваются и продвинутые кейсы:
• Парсинг адресов
• Кастомная сортировка
• Использование ISNULL и COALESCE
🧠 Это не просто набор команд — это концентрат боевого SQL-опыта.
Подходит для:
➡️ Подготовки к SQL-интервью
➡️ BI и аналитики
➡️ Web-разработки с базами
➡️ Встраивания SQL в проекты на Python, Go, Java и других языках
Forwarded from Python/ django
Руководство_по_ускорению_и_оптимизации_Python_кода.pdf
264.6 KB
Без лишней теории — только рабочие практики, которые используют разработчики в боевых проектах.
Внутри:
• Как искать bottleneck'и и профилировать код
• Где и когда использовать Numba, Cython, PyPy
• Ускорение Pandas, NumPy, переход на Polars
• Асинхронность, кеши, JIT, сборка, автопрофилировка — всё по полочкам
• Только нужные инструменты: scalene, py-spy, uvloop, Poetry, Nuitka
⚙️ Написано просто, чётко и с прицелом на production.
📌 Полная версия онлайн
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🔢 PGVector: векторный поиск прямо в PostgreSQL — гайд
Если ты работаешь с embedding'ами (OpenAI, HuggingFace, LLMs) и хочешь делать семантический поиск в SQL — тебе нужен
📦 Установка PGVector (Linux)
Или просто:
• macOS:
• Docker:
• PostgreSQL 13+ (через APT/YUM)
🔌 Подключение расширения в базе
После этого ты можешь использовать новый тип данных
🧱 Пример использования
Создаём таблицу:
Добавляем данные:
Поиск ближайшего вектора:
🧠 Операторы сравнения
PGVector поддерживает несколько видов расстояний между векторами:
-
-
-
-
-
-
Также можно усреднять вектора:
🚀 Индексация для быстрого поиска
HNSW (лучшее качество):
Параметры можно настраивать:
#### IVFFlat (быстрее создаётся, но чуть менее точный):
🔍 Проверка версии и обновление
📌 Особенности
- Работает с PostgreSQL 13+
- Поддержка до 2000 измерений
- Расширяемый синтаксис
- Можно использовать
- Подходит для RAG-пайплайнов, NLP и встраивания LLM-поиска в обычные SQL-приложения
🔗 Подробнее
💡 Храни embedding'и прямо в PostgreSQL — и делай семантический поиск без внешних векторных БД.
Если ты работаешь с embedding'ами (OpenAI, HuggingFace, LLMs) и хочешь делать семантический поиск в SQL — тебе нужен
pgvector
. Это расширение позволяет сохранять и сравнивать векторы прямо внутри PostgreSQL.📦 Установка PGVector (Linux)
git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git
cd pgvector
make
sudo make install
Или просто:
• macOS:
brew install pgvector
• Docker:
pgvector/pgvector:pg17
• PostgreSQL 13+ (через APT/YUM)
🔌 Подключение расширения в базе
CREATE EXTENSION vector;
После этого ты можешь использовать новый тип данных
vector
.🧱 Пример использования
Создаём таблицу:
CREATE TABLE items (
id bigserial PRIMARY KEY,
embedding vector(3)
);
Добавляем данные:
INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');
Поиск ближайшего вектора:
SELECT * FROM items
ORDER BY embedding <-> '[3,1,2]'
LIMIT 5;
🧠 Операторы сравнения
PGVector поддерживает несколько видов расстояний между векторами:
-
<->
— L2 (евклидово расстояние)-
<#>
— скалярное произведение-
<=>
— косинусное расстояние-
<+>
— Manhattan (L1)-
<~>
— Хэммингово расстояние (для битовых векторов)-
<%>
— Жаккар (для битовых векторов)Также можно усреднять вектора:
SELECT AVG(embedding) FROM items;
🚀 Индексация для быстрого поиска
HNSW (лучшее качество):
CREATE INDEX ON items USING hnsw (embedding vector_l2_ops);
Параметры можно настраивать:
SET hnsw.ef_search = 40;
#### IVFFlat (быстрее создаётся, но чуть менее точный):
CREATE INDEX ON items USING ivfflat (embedding vector_l2_ops) WITH (lists = 100);
SET ivfflat.probes = 10;
🔍 Проверка версии и обновление
SELECT extversion FROM pg_extension WHERE extname='vector';
ALTER EXTENSION vector UPDATE;
📌 Особенности
- Работает с PostgreSQL 13+
- Поддержка до 2000 измерений
- Расширяемый синтаксис
- Можно использовать
DISTINCT
, JOIN
, GROUP BY
, ORDER BY
и агрегации- Подходит для RAG-пайплайнов, NLP и встраивания LLM-поиска в обычные SQL-приложения
🔗 Подробнее
💡 Храни embedding'и прямо в PostgreSQL — и делай семантический поиск без внешних векторных БД.
Хотите попасть в аналитику, но теряетесь в море информации и не понимаете, какие навыки действительно важны? Боитесь, что без опыта вас не возьмут на работу? И да, ещё один популярный вопрос — а что, если мне 30/40/50+ лет?
Андрон Алексанян — эксперт по аналитике с 8-летним опытом и по совместительству CEO Simulative — покажет рабочие схемы и чёткий план, как устроиться в аналитику быстрее, даже если у вас нет опыта
Что будет на вебинаре?
— покажут реальные примеры, как оформить резюме и портфолио, чтобы привлекать внимание;
— обсудите, какие отклики работают, а какие сразу отправляют в корзину;
— изнанка найма: инсайдерский взгляд на процессы отбора
🕗 Важно досмотреть вебинар до конца, чтобы получить бонус от Simulative, который поможет бустануть карьеру
Please open Telegram to view this post
VIEW IN TELEGRAM
🎯 Хитрая SQL-задача для продвинутых
Тема: переходы состояний пользователей через
У нас есть таблица логов смены статусов пользователей:
Каждый раз, когда пользователь меняет статус, добавляется запись.
🔍 Найди пользователей, которые хотя бы один раз:
• стали
• потом были
• и либо так и остались забанены, либо позже перешли в
Важно:
• Статусы могут меняться много раз
• Нас интересует первая последовательность
• Если пользователь не вернулся в `active`, всё равно считаем, что условие выполнено
---
🧠 Решение с оконными функциями:
🧩 Почему это интересно?
• Используются оконные функции
• Нужно отслеживать последовательные пары статусов
• Объединяем логику в несколько CTE-слоёв
• Придётся думать не только о текущем статусе, но и о контексте (что было до и что после)
Подобные задачи — хороший способ прокачать мышление о временных событиях в SQL.
Тема: переходы состояний пользователей через
inactive → banned → active?
У нас есть таблица логов смены статусов пользователей:
CREATE TABLE user_status_log (
user_id INT,
status TEXT, -- 'active', 'inactive', 'banned'
changed_at TIMESTAMP
);
Каждый раз, когда пользователь меняет статус, добавляется запись.
🔍 Найди пользователей, которые хотя бы один раз:
• стали
inactive
• потом были
banned
• и либо так и остались забанены, либо позже перешли в
active
Важно:
• Статусы могут меняться много раз
• Нас интересует первая последовательность
inactive → banned
(→ optional `active`) • Если пользователь не вернулся в `active`, всё равно считаем, что условие выполнено
---
🧠 Решение с оконными функциями:
WITH ranked_status AS (
SELECT
user_id,
status,
changed_at,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY changed_at) AS rn
FROM user_status_log
),
status_with_next AS (
SELECT
user_id,
status,
changed_at,
LEAD(status) OVER (PARTITION BY user_id ORDER BY changed_at) AS next_status,
LEAD(changed_at) OVER (PARTITION BY user_id ORDER BY changed_at) AS next_changed_at
FROM ranked_status
),
transitions AS (
SELECT
user_id,
changed_at AS from_time,
next_changed_at AS to_time,
status AS from_status,
next_status AS to_status
FROM status_with_next
WHERE next_status IS NOT NULL
),
flagged_users AS (
SELECT DISTINCT user_id
FROM (
SELECT
user_id,
MAX(CASE WHEN from_status = 'inactive' AND to_status = 'banned' THEN 1 ELSE 0 END) AS went_inactive_then_banned,
MIN(CASE WHEN from_status = 'banned' AND to_status = 'active' THEN 1 ELSE 0 END) AS banned_then_active
FROM transitions
GROUP BY user_id
) t
WHERE went_inactive_then_banned = 1
)
SELECT *
FROM flagged_users;
🧩 Почему это интересно?
• Используются оконные функции
LEAD()
, ROW_NUMBER()
• Нужно отслеживать последовательные пары статусов
• Объединяем логику в несколько CTE-слоёв
• Придётся думать не только о текущем статусе, но и о контексте (что было до и что после)
Подобные задачи — хороший способ прокачать мышление о временных событиях в SQL.
🔥 Успех в IT = скорость + знания + окружение
Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://yangx.top/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://yangx.top/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://yangx.top/addlist/BkskQciUW_FhNjEy
Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://yangx.top/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://yangx.top/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://yangx.top/addlist/BkskQciUW_FhNjEy
Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
Чит лист по основам SQL.pdf
247.6 KB
🔥 Русская шпаргалка по SQL — удобно и по делу!
В этом чек-листе собраны самые важные примеры SQL-запросов с понятными пояснениями на русском языке. Всё, что нужно: SELECT, JOIN, фильтрация, сортировка и другие практичные приёмы — в одном месте.
Держите под рукой, чтобы не тратить время на вечный гуглинг синтаксиса и типовых трюков.
Сохрани себе, чтобы не потерять!
В этом чек-листе собраны самые важные примеры SQL-запросов с понятными пояснениями на русском языке. Всё, что нужно: SELECT, JOIN, фильтрация, сортировка и другие практичные приёмы — в одном месте.
Держите под рукой, чтобы не тратить время на вечный гуглинг синтаксиса и типовых трюков.
Сохрани себе, чтобы не потерять!