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

Связь: @devmangx

РКН: https://clck.ru/3H4Wo3
Download Telegram
Уровни изоляции транзакций в PostgreSQL, MySQL, MSQL, Oracle с примерами на Go

Читать: клик

👉 @SQLPortal | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Почему лучше использовать COUNT(1) вместо COUNT(*) в SQL?

При работе с большими таблицами в SQL важно учитывать производительность запросов.

COUNT(*) – в чем подвох?

Оператор COUNT(*) учитывает все столбцы таблицы, проверяя каждую строку. Хотя он возвращает правильное количество записей, обработка может занимать больше ресурсов, особенно в огромных таблицах.

COUNT(1) – оптимизированный вариант

COUNT(1) использует только первый столбец и не анализирует все остальные, что снижает нагрузку на базу данных. Это может ускорить выполнение запроса.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🤔5
Media is too big
VIEW IN TELEGRAM
Практика по SQL: объединение таблицы с самой собой (SELF JOIN)

0:00 Условия задачи
2:35 Создание таблицы для экспериментов в PostgreSQL
3:33 Объединение таблицы с самой собой (SELF JOIN)
6:27 Условие фильтрации
7:17 Проверка решения
8:31 Итоги

📹 Cмотреть: тык

👉 @SQLPortal | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
SQL-Translator – визуализируй SQL-запросы мгновенно!

Устал разбираться в сложных SQL-запросах? SQL-Translator преобразует их в наглядные схемы, помогая быстро понять структуру данных

🟡 Парсит SQL-запросы и визуализирует их
🟡 Поддерживает PostgreSQL, MySQL, SQLite и другие БД
🟡 Работает прямо в браузере – ничего устанавливать не нужно!

Попробуй сам: здесь

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🌭3🔥2
Миграция базы данных происходит, когда вы вносите изменения в базу данных.

Это может быть изменение схемы таблицы, обновление данных в записи и так далее.

В этом уроке Доминик научит вас работать с миграциями MongoDB с помощью ts-migrate-mongoose.

Ссылка: клик

👉 @SQLPortal | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥1
Полезная фишка в SQL: COALESCE() — замена NULL значений на дефолтное значение.

Часто в базах данных встречаются поля с пустыми значениями (NULL). Но как их обрабатывать? 🤔

Тут на помощь приходит функция COALESCE(), которая возвращает первый ненулевой аргумент из списка. Это суперудобно для замены NULL на что-то полезное!

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥3🌚2
Media is too big
VIEW IN TELEGRAM
Основы работы в PL/SQL Developer

В этом видеоуроке автор подробно разбирает основы работы в удобной, функциональной и быстрой визуальной среде разработки PL/SQL Developer, а также ее основные преимущества и недостатки.

📹 Cмотреть: тык

👉 @SQLPortal | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2🌚1
Media is too big
VIEW IN TELEGRAM
IT Hero — это твой лучший друг для подготовки к техническим собесам

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

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

Попробуй сам: здесь

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👀4🔥3
Хеш-индексы в PostgreSQL: быстрый поиск или скрытые проблемы?

Ссылка: клик

👉 @SQLPortal | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
SQL Фишка: Генерируемые столбцы

Хватит вручную пересчитывать данные! SQL умеет хранить вычисляемые значения автоматически.

Как делать НЕ НАДО:

Вы храните в таблице orders сумму заказа и обновляете её вручную? Это потенциальный источник багов!

UPDATE orders SET total = price * quantity WHERE id = 1;


Можно забыть обновить поле → данные сломаются.

Как делать ПРАВИЛЬНО:

Используем генерируемый столбец:

CREATE TABLE orders (
id INT PRIMARY KEY,
price DECIMAL(10,2),
quantity INT,
total DECIMAL(10,2) GENERATED ALWAYS AS (price * quantity) STORED
);


Теперь total всегда автоматически содержит правильное значение.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍8
Media is too big
VIEW IN TELEGRAM
Проектирование баз данных

В этом видеоуроке автор подробно и наглядно разбирает процесс проектирования рассылочного сервиса со списками получателей, сегментами и отчетами, используя связи 1-ко-многим и многие-ко-многим. Вы научитесь использовать полиморфные связи и создавать json-поля.

📹 Cмотреть курс: тык

👉 @SQLPortal | #курсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
В SQL можно писать циклы без циклов!

Ты знал, что SQL умеет рекурсивно создавать данные без таблиц?

Вот, например, как сделать последовательность чисел от 1 до 100 без LOOP, WHILE и даже без исходной таблицы:

WITH RECURSIVE numbers AS (
SELECT 1 AS n
UNION ALL
SELECT n + 1 FROM numbers WHERE n < 100
)
SELECT * FROM numbers;


WITH RECURSIVE создает временную таблицу.
Начинаем с 1.
В UNION ALL прибавляем 1 на каждой итерации.
Останавливаемся на 100.

Если было полезно — жду твоего 🔥

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥467👍7
Современные типы архитектуры данных

Ссылка: клик

👉 @SQLPortal | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31🏆1
Оператор INSERT INTO SELECT в SQL

Оператор INSERT INTO SELECT используется для копирования данных из одной таблицы в другую. Это удобно, когда нужно перенести данные или создать их резервную копию.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥6
Переливаем таблицы БД между средами

Ссылка: клик

👉 @SQLPortal | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2
🖥 Фишка: Динамическое скользящее окно по времени!

Обычно SUM() OVER() считает всё подряд, но что если нам нужна сумма только за последние N дней, без геморроя?

Решение – используем RANGE BETWEEN INTERVAL! 👇

SELECT 
user_id,
transaction_date,
amount,
SUM(amount) OVER (
PARTITION BY user_id
ORDER BY transaction_date
RANGE BETWEEN INTERVAL '7 days' PRECEDING AND CURRENT ROW
) AS rolling_sum
FROM transactions;


Считаем сумму только за последние 7 дней перед каждой транзакцией!
Не надо писать подзапросы – SQL сам всё оптимизирует!
Работает на любой временной аналитике (продажи, активность, балансы и т.д.)

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍11🤯3