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

Связь: @devmangx

РКН: https://clck.ru/3H4Wo3
Download Telegram
Интервьюер:

Зачем в SQL нужен EXISTS, если уже есть IN? Разве они не делают одно и то же?

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔3❤2
А сможете ответить на вопрос по данным без SQL-запроса? 🤔

До выполнения запроса данные нужно получить из источников, сопоставить, проверить и подготовить. Если эти этапы распределены между разными системами, значительная часть времени уходит на передачу данных и поддержку интеграций.

DataLens Platform объединяет загрузку, lakehouse-хранилище, обработку, SQL-запросы и визуализацию. Интерактивные запросы выполняются с помощью Trino, ресурсоемкие преобразования — с помощью Spark.

К подготовленным данным можно обращаться через SQL, отчёты и ИИ-помощника. Каталог метаданных позволяет увидеть происхождение показателей, а общая модель доступа ограничивает работу пользователя его правами.

Хранение и вычислительные мощности масштабируются независимо.

👉 Подробнее о DataLens Platform — в материале СМИ.
❤2
База данных может обрабатывать миллионы строк...

Но всего один плохой SQL-запрос способен серьёзно просадить её производительность.

Большинство проблем с SQL performance связаны с:
• SELECT *
• Отсутствующими indexes
• Неоптимальными JOIN
• Full Table Scan
• Игнорированием EXPLAIN

Вот SQL Optimization Cheat Sheet, который поможет писать более быстрые и эффективные запросы. Сохраните — пригодится во время следующего performance tuning.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Вопрос с собеседования по отладке SQL

Этот запрос должен возвращать сотрудников, которые не состоят в неактивном отделе.

Что с ним не так? Будет ли он работать? Если нет, как его исправить?

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Правильный ответ: Запрос может сработать некорректно, если departments.department_id содержит NULL…

При использовании NOT IN значение NULL в подзапросе может привести к результату сравнения UNKNOWN, из-за чего запрос может не вернуть ни одной строки.

Более надёжный подход:
SELECT e.name
FROM employees e
WHERE NOT EXISTS (
SELECT 1
FROM departments d
WHERE d.department_id = e.department_id
AND d.status = 'inactive'
);


NOT IN
+ NULL = классическая ловушка SQL. Обычно NOT EXISTS — более безопасный выбор.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Вопрос по SQL

Что вернёт этот запрос?

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Варианты:
Anonymous Quiz
10%
A
32%
B
43%
C
16%
D
Тренажёр SQL для бэкенд-разработчиков

Полезный ресурс, чтобы освоить SQL или освежить базу перед собеседованием. Формат простой: короткое объяснение, затем практические задания с запросами прямо в браузере.

https://sqlbolt.com/

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Одна задача — SQL или Pandas. Что выберете для работы с данными и почему?

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Вопрос по SQL

Будет ли это работать?

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Варианты:
Anonymous Quiz
20%
Да
80%
Нет
Вопрос по SQL

Проверьте, насколько хорошо вы понимаете разницу между RANK() и DENSE_RANK() в SQL.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Варианты:
Anonymous Quiz
29%
A
35%
B
26%
C
10%
D
Если вы хотите перейти в дата-инжиниринг, но не знаете, с чего начать, вот дорожная карта.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Backend as a Service: что такое BaaS и когда его использовать

Аутентификация, база данных, хранение файлов и обновления в реальном времени — типовые задачи можно закрыть готовой платформой. Именно такой подход предлагают BaaS-сервисы.

В статье freeCodeCamp разобрали основные возможности BaaS, сценарии применения и платформы вроде Firebase, Supabase и Appwrite. В конце — короткий пример начала работы с Firebase. Материал вводный, подойдёт для знакомства с темой.

Читать статью

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
DELETE ≠ TRUNCATE ≠ DROP

Все три команды удаляют данные, но делают это по-разному.

DELETE
➜ Удаляет выбранные строки из таблицы.
➜ Позволяет задать условие WHERE.

TRUNCATE
➜ Удаляет все строки из таблицы.
➜ Сохраняет её структуру.

DROP
➜ Удаляет саму таблицу: данные, индексы, ограничения и определение структуры.

Как запомнить:
• DELETE — удалить строки.
• TRUNCATE — очистить таблицу.
• DROP — удалить таблицу.

Примеры:
-- Удаляет строку с id = 101
DELETE FROM users WHERE id = 101;

-- Удаляет все строки, сохраняя таблицу
TRUNCATE TABLE users;

-- Удаляет саму таблицу
DROP TABLE users;


Когда использовать каждую команду?


DELETE
• Нужно удалить конкретные записи.
• Требуется фильтрация через WHERE.
• Могут срабатывать триггеры, а удаление обычно журналируется на уровне строк.

TRUNCATE
• Нужно быстро очистить всю таблицу.
• Таблица понадобится для дальнейшей работы.
• Часто применяется для временных или промежуточных данных.

DROP
• Таблица больше не нужна.
• Требуется удалить и данные, и определение её структуры.

Ловушка на собеседовании: DELETE FROM users; без WHERE удаляет все строки, но сохраняет таблицу. Это не то же самое, что DROP TABLE users;. Сохраните шпаргалку, если изучаете SQL или готовитесь к собеседованию.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
🗄 Что важно учесть, если ИИ-агент ищет по корпоративным данным?

6 октября в Архитектурном клубе Яндекс 360 разберут, как устроить поиск для ИИ-агента: сочетать полнотекстовый и векторный поиск, работать с метаданными и фильтрами и учитывать права доступа.

Даниил Смирнов, руководитель разработки ИИ-платформы Яндекс 360, покажет, как изолировать данные пользователей и организаций и не допускать появления чужих фрагментов из индекса или кеша. Ещё обсудят оценку качества поиска и итогового ответа агента.

🗓 6 октября, 17:00 МСК
💻 Онлайн, бесплатно

→ Зарегистрироваться на эфир
Нет, это не одно и то же.

Для проверки на NULL в SQL нельзя использовать = NULL. NULL означает неизвестное значение, поэтому сравнение с ним возвращает UNKNOWN, а не FALSE.

✔️ Используйте IS NULL.
✔️ Используйте IS NOT NULL.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
PostgreSQL: почему резерв на 30 минут исчезал через пять

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

В статье разбирают инцидент на стеке Go, GORM, pgx и PostgreSQL: разницу между timestamp и timestamptz, влияние таймзоны сессии на NOW() и сравнения дат, а также фиксацию UTC в подключении и проверку настроек при старте.

https://habr.com/ru/articles/1085828/

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Партиционирование vs шардинг: в чём разница?

Таблица растёт, запросы замедляются, обслуживать данные становится сложнее. Партиционирование и шардинг помогают разделить данные на части, но решают разные задачи.

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

Шардинг распределяет данные между несколькими серверами по ключу, например user_id или tenant_id. Это позволяет распределять нагрузку и объём хранения, но усложняет запросы между шардами и перенос данных.

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

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