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 #1276 · Back to latest

Older Posts 8 shown
Post #1274 1.98K
  • 🔥 13
  • ❤ 6
  • 👍 6
  • 🤝 1
Post #1273 1.95K
  • ❤ 7
  • 🔥 6
  • 👍 5
  • 🤝 1
Post #1268 2.11K
🖥 UPSERT — вставка и обновление в одном запросе!

insert ... on conflict позволяет вставить данные и одновременно обработать дубликаты без дополнительных проверок. Если запись уже существует, то выполняется обновление, если нет - добавляется новая.

Сегодня в посте:
• Как работает on conflict и псевдотаблица excluded;

• Как обновлять только изменившиеся поля;

• Как писать лаконичные и надёжные операции без лишних запросов.


Всё происходит атомарно, в одном шаге и без лишней логики на стороне приложения.

➡️ SQL Ready | #гайд
  • 👍 13
  • ❤ 11
  • 🔥 9
  • 👎 1
Post #1266 1.88K
TRANSACTION ISOLATION LEVEL — управление конкурентным доступом!

Когда несколько транзакций работают с одними данными, возможны проблемы. Уровень изоляции определяет, насколько строго СУБД защищает данные от таких эффектов.

Пример настройки перед транзакцией (зависит от СУБД):
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;


🔥 Правильный уровень изоляции обеспечивает предсказуемость и надёжность даже при высокой конкуренции.

➡️ SQL Ready | #практика
  • 🔥 12
  • 👍 7
  • 🤝 7
Post #1264 2K
🖥 Индексы ускоряют запросы, но жрут место!

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

Вместо обычного индекса создаём частичный (partial index):
CREATE INDEX ON orders (user_id)
WHERE status = 'pending';


Так индекс строится только для строк, где status = 'pending'. Остальные записи не попадают, база хранит меньше, ищет быстрее.

Теперь этот запрос:
SELECT * FROM orders
WHERE status = 'pending' AND user_id = 42;


🔥 Применяйте partial index для активных заказов, незавершённых задач, непрочитанных сообщений. Там, где фильтр стабильно повторяется.

➡️ SQL Ready | #совет
  • 👍 16
  • 🤝 8
  • 🔥 7
  • ❤ 1
Post #1258 2.25K
🖥 SQL-лотерея: угадай число!

Сегодня будем играть! База данных “задумывает” число от 1 до 10, а ты делаешь три попытки угадать его.

В задаче:
• Используем RANDOM() и FLOOR() для генерации числа;

• Проверяем догадки через CASE WHEN;

• Добавляем счётчик успехов, чтобы узнать, повезло ли на этот раз.


Так SQL превращается в мини-игру с логикой, состоянием и элементом удачи.

➡️ SQL Ready | #задача
  • ❤ 17
  • 🔥 10
  • 👍 9
Post #1256 2.44K
  • 👍 18
  • 🔥 5
  • 😁 5
  • 🤝 3
  • ❤ 1
Post #1251 2.54K
🖥 ROWS vs RANGE, логика временной аналитики!

Многие знают оконные функции, но редко задумываются: ROWS строит окна по количеству строк, RANGE — по значению (например, времени).

Сегодня в посте:
• Как работает ROWS BETWEEN … - окно по строкам.

• Как использовать RANGE BETWEEN INTERVAL … - окно по времени.

• Пример: получаем максимум за последний час в каждом временном срезе.


Этот подход раскрывает глубину SQL как языка временной аналитики и показывает работу с метриками.

➡️ SQL Ready | #гайд
  • 🔥 13
  • ❤ 9
  • 👍 8
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 →