SQL Portal | Базы Данных
14.4K subscribers
613 photos
83 videos
41 files
508 links
Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных

Связь: @devmangx

РКН: https://clck.ru/3H4Wo3
Download Telegram
100 sql commands for sql portal_water.pdf
180 KB
Дорогие аналитики данных, ловите подгон. 100 команд SQL в действии.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103🔥3
Что такое транзакции и зачем они нужны

Транзакции в SQL — это способ гарантировать целостность и консистентность данных при выполнении нескольких операций.

Они позволяют объединить несколько SQL-запросов в одну логическую единицу работы, которая либо выполняется полностью, либо не выполняется вообще. Это важно для предотвращения ошибок, например, когда одна операция успешна, а другая — нет.

Транзакции поддерживают свойства ACID:

🟡A (Atomicity) — атомарность: все операции транзакции выполняются целиком или не выполняются вообще.

🟡C (Consistency) — согласованность: транзакция переводит базу данных в согласованное состояние.

🟡I (Isolation) — изоляция: изменения одной транзакции не видны другим, пока она не завершена.

🟡D (Durability) — долговечность: изменения сохраняются, даже если происходит сбой.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥42
Please open Telegram to view this post
VIEW IN TELEGRAM
😁35🔥3👍2
Сжатие данных в PostgreSQL: как различные методы влияют на хранение TOAST

📖 Читать: ссылка

👉 @SQLPortal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥2
Знали ли вы, что есть репозиторий, где собрано всё, что нужно, чтобы прокачать SQL за рамками типичных задач с LeetCode?

Beyond LeetCode SQL — это глубокий разбор реальных кейсов, оптимизации запросов и продвинутых техник.

Стать слоном по SQL никогда ещё не было так просто 😍

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Вы можете сравнить две таблицы и найти строки, которые есть только в одной из них, с помощью следующего запроса:

SELECT * FROM (
SELECT 't1' t1, t1.* FROM t1
) t1
NATURAL FULL JOIN (
SELECT 't2' t2, t2.* FROM t2
) t2
WHERE t1 IS NULL OR t2 IS NULL;


Для того чтобы этот запрос работал, столбцы должны:

Иметь одинаковые имена в обеих таблицах
Не содержать NULL-значений

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥1
Анализ данных – это не просто цифры, а процесс поиска инсайтов, влияющих на бизнес-решения

Процесс работы аналитика


1. Спросить – в чем проблема?
2. Собрать – получить данные
3. Очистить – исправить и подготовить
4. Анализировать – искать инсайты
5. Действовать – представить результаты

Виды анализа

Descriptive (описательный) – что произошло?
Diagnostic (диагностический) – почему это произошло?
Predictive (предсказательный) – что произойдет дальше?
Prescriptive (предписывающий) – что делать?

Главные вопросы аналитика

— Какова цель анализа?
— Кто будет использовать инсайты?
— Надежны ли данные?
— Какие тренды и аномалии можно выявить?
— Какие решения повлияют на результат?

Как аналитики помогают командам?

Маркетинг – ROI, поведение клиентов
Продажи – воронки, эффективность
Операции – процессы, KPI
Менеджмент – стратегии, дашборды
Продукт – поведение пользователей, A/B-тесты

Популярные инструменты: SQL, Excel, Google Sheets, Looker, Power BI, Tableau, Python, R

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥42
Быстрый путь блокирования в PostgreSQL

📖 Читать: ссылка

👉 @SQLPortal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42
800+ SQL Server Interview Questions and Answers .pdf
1 MB
Готовимся к собесу — 800+ вопросов по SQL + задачи

Хороший сборник для прокачки навыков и проверки себя ✌️

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥53
Совет по прокачке SQL (если ещё не в курсе):

1. Заходим на SQL-EX – это сайт с задачами по SQL.

3. Пишем запросы, тренируем JOIN, подзапросы, оконные функции и кайфуем от прогресса 😆

И да, всё на русском

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥54
This media is not supported in your browser
VIEW IN TELEGRAM
Наткнулся на интересный проект — Rainfrog

Это терминальное приложение для работы с PostgreSQL, которое можно описать как лёгкую, минималистичную альтернативу pgAdmin или DBeaver, но без GUI и перегруза.

Если привык работать в терминале и ценишь скорость — стоит попробовать

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥1
Больше индексов ≠ выше производительность

💡 Совет: не стоит индексировать всё подряд.

Почему?

➟ Каждый индекс добавляет издержки при изменении данных (вставка, обновление, удаление)
➟ Сосредоточьтесь на столбцах, которые часто используются в WHERE, JOIN, ORDER BY или GROUP BY.

Типы индексов в базе данных:

1. Кластерный индекс
🟡Физически переупорядочивает строки данных на основе ключа индекса.
🟡Только один на таблицу.
🟡Значительно ускоряет диапазонные запросы (например, «найти все заказы между датами X и Y») и запросы по индексируемым столбцам.
🟡Может замедлять модификации данных (вставки, обновления, удаления) из-за переупорядочивания.

2. Некластерный индекс
🟡Создаёт отдельную структуру с указателями на строки данных, отсортированными по ключу индекса.
🟡Может быть несколько на одну таблицу.
🟡Эффективен для точечных запросов (например, «найти клиента с ID 123»).
🟡Может использоваться как покрывающий индекс, если включает все нужные для запроса столбцы.

3. Уникальный индекс
🟡Гарантирует уникальность значений в столбце или комбинации столбцов.
🟡Может быть кластерным или некластерным.
🟡Предотвращает дублирование значений, обеспечивая целостность данных.
🟡Часто используется для альтернативных ключей (не основного ключа), которые должны быть уникальными.

4. Фильтрованный индекс
🟡Индексирует только подмножество строк, соответствующее фильтрующему условию.
🟡Повышает производительность запросов, которые часто используют указанный фильтр.
🟡Уменьшает размер индекса по сравнению с индексом на всю таблицу.

5. Полнотекстовый индекс
🟡Обеспечивает эффективный поиск по текстовым данным (например, документы, статьи) по ключевым словам и фразам.
🟡Использует специальные алгоритмы индексирования и поиска (например, инвертированные индексы).
🟡Поддерживает лингвистические функции, такие как стемминг и тезаурус.

6. Составной индекс
🟡Индекс, созданный на нескольких столбцах.
🟡Может быть кластерным или некластерным.
🟡Оптимизирует запросы, фильтрующие или сортирующие по нескольким столбцам.
🟡Порядок столбцов в определении индекса имеет решающее значение для производительности.

7. Покрывающий индекс
🟡Включает все столбцы, необходимые для запроса, прямо в индекс, исключая необходимость обращаться к основной таблице.
🟡Может быть некластерным.
🟡Существенно ускоряет запросы, которым нужны только данные из индексируемых столбцов.

8. Индекс с включёнными столбцами
🟡Похож на покрывающий индекс, но включает только неключевые столбцы.
🟡Некластерный.
🟡Может улучшить производительность, если дополнительные столбцы часто используются в запросах.

9. XML-индекс
🟡Индексирует XML-данные для эффективного запроса с использованием XPath или специфичных XML-функций.
🟡Доступен в СУБД, поддерживающих XML-тип данных.
🟡Позволяет выполнять запросы к конкретным элементам или атрибутам внутри XML-документов.

10. Частичный индекс
🟡Индексирует только те строки, которые соответствуют определённому условию.
🟡Похож на фильтрованный индекс, но предоставляет больше гибкости в определении фильтра.
🟡Повышает производительность при специфичных кейсах запросов.

11. Битовый индекс
🟡Эффективно индексирует столбцы с низкой кардинальностью (немного уникальных значений).
🟡Хранит битовые карты, указывающие, какие строки содержат конкретное значение.


👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3
Как превратить PostgreSQL в мощный поисковый движок?

📖 Читать: ссылка

👉 @SQLPortal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
О да, SQLZap — это прям находка

sqlzap.com — это онлайн-платформа для тренировок SQL-запросов в браузере. Что-то вроде интерактивного тренажёра

Идеально чтобы натаскать руку — как Leetcode, только для SQL

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1👀1
Учим SQL по мемам 🖕

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁256👍2
Вот список 20 техник оптимизации SQL-запросов, которые я считаю достойными внимания:

1. Создавайте индекс на больших таблицах (>1.000.000 строк)
2. Используйте EXIST() вместо COUNT() для поиска элемента в таблице
3. Используйте SELECT с перечислением полей вместо SELECT *
4. Избегайте подзапросов в WHERE-условии
5. Избегайте SELECT DISTINCT, если это возможно
6. Используйте WHERE вместо HAVING
7. Создавайте соединения с помощью INNER JOIN (а не через WHERE)
8. Используйте LIMIT для выборки результатов
9. Используйте UNION ALL вместо UNION, где это возможно
10. Используйте UNION вместо конструкции WHERE ... OR ...
11. Запускайте запросы в непиковые часы
12. Избегайте использования OR в соединениях
13. Выбирайте GROUP BY вместо оконных функций
14. Используйте производные и временные таблицы
15. Удаляйте индекс перед загрузкой большого объема данных
16. Используйте материализованные представления вместо обычных
17. Избегайте оператора != или <> (не равно)
18. Минимизируйте количество подзапросов
19. Используйте INNER JOIN как можно реже, если можно получить тот же результат с LEFT/RIGHT JOIN
20. Чаще используйте временные источники для получения того же набора данных


👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥1😁1🤯1
Шпаргалка по SQL для пользователей SQL Server

1. Типы данных:

Точные числа: int, decimal, money, и т. д.
Приблизительные числа: float, real
Дата и время: datetime, timestamp
Строки char, varchar, text и Unicode версии

2. Функции работы с датой: GETDATE(), YEAR(), DATEADD(), DATEDIFF() и др.

3. Функции работы со строками: LEN(), LEFT(), RIGHT(), REPLACE(), SUBSTRING(), UPPER(), LOWER()

4. Математические функции: ABS(), ROUND(), CEILING(), FLOOR(), POWER(), SQRT()

5. Агрегатные функции: SUM(), AVG(), MAX(), MIN(), COUNT()

6. Создание объектов базы данных:

Хранимые процедуры: CREATE PROCEDURE
Триггеры: CREATE TRIGGER
Представления (view): CREATE VIEW
Индексы: CREATE INDEX
Функции: CREATE FUNCTION

7. Конвертация типов: CAST(), CONVERT()

8. Ранжирование и оконные функции: RANK(), DENSE_RANK(), ROW_NUMBER()

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍3
Задача с LeetCode — «Second Highest Salary»

Найти вторую по величине зарплату из таблицы Employee. Если такой нет — вернуть NULL

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Если ты новичок в SQL — это просто находка

Это сайт, который анимирует выполнение SQL-запросов.

Ты вставляешь SQL, жмёшь visualize — и видишь, как твой запрос "оживает": шаг за шагом показывает, как SELECT вытягивает данные, как JOIN соединяет таблицы, как фильтруются строки и т.д.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥7