Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Cотрудничество: @energy_c
РКН: https://clck.ru/3QREBc
Post #1274
1.98K
- 🔥 13
- ❤ 6
- 👍 6
- 🤝 1
SQ @sql_ready
Showing posts older than #1276 · Back to latest






insert ... on conflict позволяет вставить данные и одновременно обработать дубликаты без дополнительных проверок. Если запись уже существует, то выполняется обновление, если нет - добавляется новая.• Как работает on conflict и псевдотаблица excluded;
• Как обновлять только изменившиеся поля;
• Как писать лаконичные и надёжные операции без лишних запросов.
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
BEGIN;
SELECT * FROM accounts WHERE id = 1;
READ UNCOMMITTED — минимальная защита, возможны «грязные» чтения:SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
READ COMMITTED — предотвращает грязные чтения, но допускает неповторяемые и фантомные:SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
REPEATABLE READ — одни и те же строки возвращают одинаковые значения в рамках транзакции (поведение с фантомами зависит от СУБД):SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
SERIALIZABLE — максимальная изоляция: транзакции выполняются так, будто идут строго последовательно.SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

CREATE INDEX ON orders (user_id)
WHERE status = 'pending';
status = 'pending'. Остальные записи не попадают, база хранит меньше, ищет быстрее.SELECT * FROM orders
WHERE status = 'pending' AND user_id = 42;
partial index для активных заказов, незавершённых задач, непрочитанных сообщений. Там, где фильтр стабильно повторяется.





• Используем RANDOM() и FLOOR() для генерации числа;
• Проверяем догадки через CASE WHEN;
• Добавляем счётчик успехов, чтобы узнать, повезло ли на этот раз.






ROWS строит окна по количеству строк, RANGE — по значению (например, времени). • Как работает ROWS BETWEEN … - окно по строкам.
• Как использовать RANGE BETWEEN INTERVAL … - окно по времени.
• Пример: получаем максимум за последний час в каждом временном срезе.