Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3🔥3
Они позволяют объединить несколько SQL-запросов в одну логическую единицу работы, которая либо выполняется полностью, либо не выполняется вообще. Это важно для предотвращения ошибок, например, когда одна операция успешна, а другая — нет.
Транзакции поддерживают свойства ACID:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4❤2
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
Beyond LeetCode SQL — это глубокий разбор реальных кейсов, оптимизации запросов и продвинутых техник.
Стать слоном по SQL никогда ещё не было так просто
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Вы можете сравнить две таблицы и найти строки, которые есть только в одной из них, с помощью следующего запроса:
Для того чтобы этот запрос работал, столбцы должны:
☑ Иметь одинаковые имена в обеих таблицах
☑ Не содержать NULL-значений
👉 @SQLPortal
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;
Для того чтобы этот запрос работал, столбцы должны:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥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
Процесс работы аналитика
1. Спросить – в чем проблема?
2. Собрать – получить данные
3. Очистить – исправить и подготовить
4. Анализировать – искать инсайты
5. Действовать – представить результаты
Виды анализа
Главные вопросы аналитика
— Какова цель анализа?
— Кто будет использовать инсайты?
— Надежны ли данные?
— Какие тренды и аномалии можно выявить?
— Какие решения повлияют на результат?
Как аналитики помогают командам?
Популярные инструменты: SQL, Excel, Google Sheets, Looker, Power BI, Tableau, Python, R
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4❤2
800+ SQL Server Interview Questions and Answers .pdf
1 MB
Готовимся к собесу — 800+ вопросов по SQL + задачи
Хороший сборник для прокачки навыков и проверки себя✌️
👉 @SQLPortal
Хороший сборник для прокачки навыков и проверки себя
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5❤3
Совет по прокачке SQL (если ещё не в курсе):
1. Заходим на SQL-EX – это сайт с задачами по SQL.
3. Пишем запросы, тренируем JOIN, подзапросы, оконные функции и кайфуем от прогресса😆
И да, всё на русском
👉 @SQLPortal
1. Заходим на SQL-EX – это сайт с задачами по SQL.
3. Пишем запросы, тренируем JOIN, подзапросы, оконные функции и кайфуем от прогресса
И да, всё на русском
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥5❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Наткнулся на интересный проект — Rainfrog
Это терминальное приложение для работы с PostgreSQL, которое можно описать как лёгкую, минималистичную альтернативу pgAdmin или DBeaver, но без GUI и перегруза.
Если привык работать в терминале и ценишь скорость — стоит попробовать
👉 @SQLPortal
Это терминальное приложение для работы с PostgreSQL, которое можно описать как лёгкую, минималистичную альтернативу pgAdmin или DBeaver, но без GUI и перегруза.
Если привык работать в терминале и ценишь скорость — стоит попробовать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3🔥1
Больше индексов ≠ выше производительность
💡 Совет: не стоит индексировать всё подряд.
Почему?
➟ Каждый индекс добавляет издержки при изменении данных (вставка, обновление, удаление)
➟ Сосредоточьтесь на столбцах, которые часто используются в
Типы индексов в базе данных:
👉 @SQLPortal
Почему?
➟ Каждый индекс добавляет издержки при изменении данных (вставка, обновление, удаление)
➟ Сосредоточьтесь на столбцах, которые часто используются в
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. Битовый индекс🟡 Эффективно индексирует столбцы с низкой кардинальностью (немного уникальных значений).🟡 Хранит битовые карты, указывающие, какие строки содержат конкретное значение.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
О да, SQLZap — это прям находка
sqlzap.com — это онлайн-платформа для тренировок SQL-запросов в браузере. Что-то вроде интерактивного тренажёра
Идеально чтобы натаскать руку — как Leetcode, только для SQL
👉 @SQLPortal
sqlzap.com — это онлайн-платформа для тренировок SQL-запросов в браузере. Что-то вроде интерактивного тренажёра
Идеально чтобы натаскать руку — как Leetcode, только для SQL
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1👀1
Вот список 20 техник оптимизации SQL-запросов, которые я считаю достойными внимания:
👉 @SQLPortal
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. Чаще используйте временные источники для получения того же набора данных
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3🔥1😁1🤯1
Шпаргалка по SQL для пользователей SQL Server
1. Типы данных:
⏩ Точные числа:
⏩ Приблизительные числа:
⏩ Дата и время:
⏩ Строки
2. Функции работы с датой:
3. Функции работы со строками:
4. Математические функции:
5. Агрегатные функции:
6. Создание объектов базы данных:
⏩ Хранимые процедуры:
⏩ Триггеры:
⏩ Представления (view):
⏩ Индексы:
⏩ Функции:
7. Конвертация типов:
8. Ранжирование и оконные функции:
👉 @SQLPortal
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
CREATE VIEW
CREATE INDEX
CREATE FUNCTION
7. Конвертация типов:
CAST(), CONVERT()
8. Ранжирование и оконные функции:
RANK(), DENSE_RANK(), ROW_NUMBER()
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍3
Задача с LeetCode — «Second Highest Salary»
Найти вторую по величине зарплату из таблицы
👉 @SQLPortal
Найти вторую по величине зарплату из таблицы
Employee
. Если такой нет — вернуть NULL
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
😁13❤1👍1🌭1
This media is not supported in your browser
VIEW IN TELEGRAM
Если ты новичок в SQL — это просто находка
Это сайт, который анимирует выполнение SQL-запросов.
Ты вставляешь SQL, жмёшь
👉 @SQLPortal
Это сайт, который анимирует выполнение SQL-запросов.
Ты вставляешь SQL, жмёшь
visualize
— и видишь, как твой запрос "оживает": шаг за шагом показывает, как SELECT вытягивает данные, как JOIN соединяет таблицы, как фильтруются строки и т.д.Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥7