SQL Portal | Базы Данных
13.8K subscribers
1.14K photos
142 videos
51 files
810 links
Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных

Связь: @devmangx

РКН: https://clck.ru/3H4Wo3
Download Telegram
Разбираем SQL-запросы с помощью Python

Какие таблицы и колонки использует запрос? Библиотека sql-metadata извлечёт эту информацию из SQL без подключения к базе и выполнения запроса.

Умеет работать с алиасами и подзапросами, определять колонки в SELECT, WHERE, JOIN и других частях запроса. Поддерживает синтаксис PostgreSQL, MySQL, SQLite, SQL Server и Apache Hive.

Пригодится для анализа SQL-файлов, автоматической документации и поиска зависимостей между запросами и таблицами.

https://github.com/macbre/sql-metadata

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
5 групп реляционных СУБД, которые полезно знать

• С открытым исходным кодом: PostgreSQL, MariaDB.
• Коммерческие и корпоративные: Oracle Database, Microsoft SQL Server, IBM Db2.
• Встраиваемые и настольные: SQLite, Microsoft Access.
• Распределённые SQL / NewSQL: CockroachDB, YugabyteDB.
• Облачные аналитические хранилища: Snowflake, Amazon Redshift.

Это условная группировка: здесь смешаны лицензирование, архитектура и назначение. Категории могут пересекаться — например, распределённая СУБД может одновременно быть open-source.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
DBcooper — лёгкий клиент для работы с базами данных

Open-source-приложение на Tauri, Rust и React объединяет PostgreSQL, SQLite, Redis и ClickHouse в одном интерфейсе. Акцент на простоте и удобной работе с клавиатуры. А ещё есть генерация SQL по описанию на естественном языке.

https://github.com/amalshaji/dbcooper

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Оконные функции SQL: аналитика без потери отдельных строк

В отличие от GROUP BY, оконные функции позволяют выполнять вычисления по группам строк, сохраняя каждую строку в результате.

Ранжирование, накопительные суммы, скользящие средние, сравнение с предыдущей или следующей строкой через LAG и LEAD, работа с процентилями и границами окна — базовые приёмы, которые стоит освоить.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Горизонтальные или вертикальные столбцы: что выбрать?

Оба варианта помогают сравнивать категории, но ориентация влияет на читаемость.

• Горизонтальные столбцы удобны, когда категорий много или у них длинные названия.

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

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
Бэкап есть? А если найду? 😳

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6
Какие навыки нужны дата-инженеру?

В вакансиях прослеживается закономерность: на первом месте SQL и Python, дальше — облачные платформы, Spark, хранилища данных, оркестрация пайплайнов, потоковая обработка, Git, контейнеры и инструменты для работы с большими данными.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
SQL: порядок написания ≠ порядок обработки

Запрос начинается с SELECT, но логически обрабатывается в другом порядке:

FROM / JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT

Понимание этой последовательности помогает разобраться, почему алиас из SELECT обычно недоступен в WHERE, а фильтрация результатов агрегации выполняется через HAVING.

Важно: это логический порядок, а физический план выполнения выбирает оптимизатор СУБД.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Чтобы запросы оставались быстрыми, понятными и справлялись с ростом объёма данных, нужны хорошие привычки при их написании.

Вот 15 принципов, которые стоит применять на практике:

1. Избегайте SELECT *: выбирайте только нужные столбцы.
2. Отфильтровывайте ненужные строки с помощью WHERE.
3. Понимайте разницу между INNER JOIN и LEFT JOIN.
4. Используйте CTE вместо громоздких подзапросов для улучшения читаемости.
5. Не маскируйте ошибки логики лишним DISTINCT.
6. Используйте UNION ALL, если удалять дубликаты не требуется.
7. Освойте оконные функции для сложных расчётов.
8. Согласовывайте типы данных, чтобы избежать неявных преобразований.
9. Сравнивайте планы для EXISTS и IN: первый не всегда быстрее.
10. Убирайте ORDER BY, если сортировка не нужна.
11. Используйте CROSS JOIN только когда действительно нужно декартово произведение.
12. Учитывайте, что функции над индексированными столбцами могут мешать использованию обычного индекса.
13. Используйте CASE для понятной условной логики.
14. Изучайте план выполнения через EXPLAIN; помните, что EXPLAIN ANALYZE действительно выполняет запрос.
15. Проверяйте корректность на небольших наборах данных, а производительность — на объёмах, близких к реальным.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Pandas: Python для повседневных задач аналитика 🐼

Загрузить файлы с неаккуратными данными, изучить их структуру, очистить столбцы, сгруппировать результаты и объединить наборы данных — всё это можно сделать с Pandas.

Библиотека помогает подготовить данные для отчётов и машинного обучения, а также получить первые аналитические выводы.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
Команды SQL проще запомнить по назначению

• DDL — создание и изменение структуры БД: CREATE, ALTER, DROP.
• DML — добавление, изменение и удаление данных: INSERT, UPDATE, DELETE.
• DCL — управление правами доступа: GRANT, REVOKE.
• TCL — управление транзакциями: COMMIT, ROLLBACK, SAVEPOINT.
• DQL — получение данных: SELECT.

В некоторых классификациях SELECT относят к DML, не выделяя DQL отдельно.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3