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

Связь: @devmangx

РКН: https://clck.ru/3H4Wo3
Download Telegram
Разбор вопроса с собеседования: SQL-запрос для выборки данных по условию

На собеседованиях по SQL часто встречаются задачи, связанные с использованием шаблонов и фильтрации данных. Рассмотрим один из таких вопросов

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍164🔥3
Master_SQL.pdf
754.9 KB
Руководство по SQL 🔥

Это руководство охватывает различные аспекты, начиная с основ SQL и до более сложных тем

Материал дополнен практическими примерами, которые способствуют лучшему усвоению информации

Сохраняйте, чтобы не потерять

👉 @SQLPortal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍3😁2
Топ-10 техник масштабирования баз данных, которые вам стоит знать:

🍩Индексирование: Создавайте индексы на часто запрашиваемых столбцах, чтобы ускорить извлечение данных.

🍩Вертикальное масштабирование: Обновите сервер базы данных, добавив больше процессора, ОЗУ или хранилища для обработки увеличенной нагрузки.

🍩Кэширование: Храните часто запрашиваемые данные в памяти (например, Redis, Memcached), чтобы снизить нагрузку на базу данных и улучшить время отклика.

🍩Шардинг: Распределяйте данные по нескольким серверам, разделив базу данных на более мелкие независимые шардированные части, что позволяет достичь горизонтального масштабирования и улучшенной производительности.

🍩Репликация: Создавайте несколько копий (реплик) базы данных на разных серверах, позволяя распределять запросы на чтение по репликам и улучшая доступность.

🍩Оптимизация запросов: Тщательно настраивайте SQL-запросы, избегайте дорогих операций и эффективно используйте индексы для улучшения скорости выполнения и снижения нагрузки на базу данных.

🍩Пуллинг соединений: Снижайте накладные расходы на открытие/закрытие соединений с базой данных, повторно используя существующие соединения, что улучшает производительность при высоком трафике.

🍩Вертикальное партиционирование: Разделите большие таблицы на более мелкие, более управляемые части (партиции), каждая из которых содержит подмножество столбцов из исходной таблицы.

🍩Денормализация: Храните данные в избыточном, но структурированном формате, чтобы минимизировать сложные объединения и ускорить работу с запросами, ориентированными на чтение.

🍩🍩Материализованные представления: Предварительно вычисляйте и храните результаты сложных запросов как отдельные таблицы, чтобы избежать дорогостоящих перерасчетов, уменьшив нагрузку на базу данных и улучшив время отклика.


Сохраняй чтобы не забыть!

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍122🔥1
Что нужно знать, чтобы писать быстрые SQL-запросы?

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

👉 @SQLPortal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥2
💡 SQL фишка

Для фильтрации агрегированных данных используйте HAVING вместо WHERE. Это позволяет фильтровать данные после агрегации, что невозможно сделать с WHERE.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥196
Понимание ключей в базах данных

В SQL ключи помогают гарантировать целостность данных и предотвращают дублирование.

Primary Key
Уникально идентифицирует каждую строку в таблице.

Candidate Key
Набор атрибутов, который может быть первичным ключом.

Alternate Key
Кандидатный ключ, который не был выбран в качестве первичного.

Foreign Key
Связывает таблицы между собой, обеспечивая ссылочную целостность.

Unique Key
Гарантирует уникальность значения в столбце, но допускает NULL.

Super Key
Любой набор атрибутов, уникально идентифицирующий строку.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥6
💡 SQL-запрос: преобразуем имена в нижний регистр!

Нужно получить имена сотрудников из таблицы EmployeeDetail в нижнем регистре 👇

SELECT LOWER(FirstName) AS [First Name] FROM EmployeeDetail


Используйте LOWER() для приведения строк к нижнему регистру, а AS — для переименования столбца.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥5
Триггеры в PostgreSQL: основы

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

👉 @SQLPortal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3
💡 Хотите анализировать изменения без сложных JOIN-ов? Используйте оконные функции, например, LAG().

LAG() берёт значение из предыдущей строки, помогая вычислять разницу без громоздких подзапросов.

Можно даже отслеживать тренды:

SELECT 
sales_date,
product_id,
sales_amount,
CASE
WHEN sales_amount > LAG(sales_amount) OVER (PARTITION BY product_id ORDER BY sales_date)
THEN 'Рост' ELSE 'Падение'
END AS trend
FROM sales;


👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥7
Ручное восстановление БД PostgreSQL после аппаратного сбоя

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

👉 @SQLPortal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥21🤔1
Что такое обобщённое табличное выражение (CTE) в SQL?

Обобщённое табличное выражение — это временный результат запроса, который можно использовать внутри SELECT, INSERT, UPDATE или DELETE. CTE определяются с помощью ключевого слова WITH и могут улучшать читаемость кода, упрощать сложные запросы и избегать дублирования кода

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍163🔥2
20 распространенных эквивалентов Excel-SQL

Таблица помогает пользователям, знакомым с Excel, быстрее освоить SQL, показывая аналогичные операции в обоих инструментах.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2
💡 Использование LATERAL JOIN в SQL

LATERAL JOIN позволяет подзапросу динамически ссылаться на значения из основной строки запроса. Это дает возможность выполнять подзапросы, которые зависят от данных каждой строки.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4
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