TGViewer
Channel Public Channel
SQL Ready | Базы Данных

SQL Ready | Базы Данных

@sql_ready

Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Cотрудничество: @energy_c

РКН: https://clck.ru/3QREBc
Subscribers
17.5K
Photos
1.4K
Videos
114
Links
765

Showing posts older than #1399 · Back to latest

Older Posts 7 shown
Post #1397 2.07K
  • 🔥 24
  • 👍 9
  • ❤ 7
  • 😁 1
  • 🤝 1
Post #1392 2.48K
🖥 Oracle — псевдоколонки и их возможности!

Эта шпаргалка собирает основные псевдоколонки Oracle и показывает, как использовать их на практике: нумерация строк, доступ к физическому адресу, работа с иерархиями, определение листовых/корневых узлов, генерация UUID, отслеживание изменений по SCN и просмотр историй строк.

➡️ SQL Ready | #шпора
  • 👍 15
  • 🔥 10
  • ❤ 7
  • 🤝 2
Post #1390 2.53K
Нужно найти, где бронирования, подписки или сессии пересекаются по времени?

Два интервала пересекаются, если начало одного раньше конца другого, и наоборот:
a.start_at < b.end_at
AND b.start_at < a.end_at


Это условие покрывает все случаи перекрытий, даже частичных и вложенных.

Теперь объедини данные сами с собой:
SELECT a.id, b.id
FROM bookings a
JOIN bookings b
ON a.id < b.id
AND a.start_at < b.end_at
AND b.start_at < a.end_at;


a.id < b.id, чтобы не получить пары в обе стороны.

Хочешь анализировать бронирования по ресурсу? Добавь фильтр:
AND a.room_id = b.room_id


🔥 Теперь видно, какие заявки реально конфликтуют по времени.

➡️ SQL Ready | #совет
  • 🔥 14
  • ❤ 11
  • 👍 6
  • 🤝 1
Post #1384 2.32K
🖥 SQL-генерация полного набора домино!

Сегодня соберём 28 уникальных костяшек домино — только силами SQL. Без циклов и хранимых процедур, используя лишь CROSS JOIN и простое условие.

В этом посте:
• Генерируем все пары чисел от 0 до 6;

• Фильтруем зеркальные комбинации;

• Получаем финальный набор костяшек в правильном порядке.


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

➡️ SQL Ready | #задача
  • 👍 13
  • 🔥 8
  • ❤ 7
  • 🤝 2
Post #1382 2.3K
Оптимистическая блокировка: обновляем данные без конфликтов!

Когда несколько пользователей редактируют одну запись, можно избежать конфликтов с помощью оптимистической блокировки — без явного FOR UPDATE.

Создаём таблицу с версией записи:
CREATE TABLE products (
id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
name TEXT,
price DECIMAL(10,2),
version INT DEFAULT 1 NOT NULL
);


Выбираем запись для редактирования:
SELECT id, name, price, version
FROM products
WHERE id = 1;


Обновляем с проверкой версии:
UPDATE products
SET price = 199.99,
version = version + 1
WHERE id = 1
AND version = 1;


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

Приложение должно проверить, что rows_affected = 1, и при необходимости повторить попытку или показать сообщение об ошибке.

Проверяем результат:
SELECT * FROM products WHERE id = 1;


🔥 Такой подход предотвращает «потерю обновлений» без длительных блокировок чтения и подходит для большинства современных СУБД.

➡️ SQL Ready | #практика
  • 👍 17
  • ❤ 10
  • 🔥 5
  • 🤝 1
Post #1377 2.48K
🖥 Контроль целостности данных!

С помощью оконных функций SQL можно находить разрывы во временных рядах, пропущенные интервалы и повторяющиеся записи.

Сегодня в гайде:
• Выявляем пропущенные минуты и события;

• Находим дубликаты временных меток;

• Контролируем качество потоков и ETL прямо в запросах.


В продакшн-аналитике важно не только считать, но и замечать, где данные пропали или задублировались.

➡️ SQL Ready | #гайд
  • 👍 14
  • 🔥 12
  • 🤝 6
Post #1375 2.53K
  • 👍 9
  • 🔥 7
  • 🤝 6
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →