SQL Ready | Базы Данных
15.4K subscribers
1.2K photos
66 videos
2 files
580 links
Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

РКН: https://clck.ru/3QREBc

Реклама на бирже: https://telega.in/c/sql_ready
Download Telegram
🖥 UPSERT — вставка и обновление в одном запросе!

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

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

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

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


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

➡️ SQL Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1311🔥9👎1
7🔥6👍5🤝1
Что же выведет консоль?
Anonymous Quiz
40%
A
17%
B
18%
C
24%
D
🔥136👍6🤝1
🖥 Создание и изменение структуры (DDL)

В этой шпаргалке собраны основные команды языка определения данных, используемые для создания, изменения и удаления объектов базы данных: таблиц, столбцов, индексов и других элементов структуры. Они формируют архитектуру базы и позволяют гибко управлять её схемой.

➡️ SQL Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍186🔥6
Индекс по выражению — ускоряй запросы без изменения схемы!

Часто запросы не используют индекс, хотя поле индексировано.

Причиной может быть функция в условии:
SELECT * FROM users WHERE lower(email) = 'admin@example.com';


Даже если email проиндексирован, lower(email) ломает возможность использовать индекс.

Вариант решения - индекс по выражению (expression index):
CREATE INDEX users_lower_email_idx
ON users ((lower(email)));


Проверить можно через план запроса:
EXPLAIN ANALYZE
SELECT * FROM users WHERE lower(email) = 'admin@example.com';


🔥 Теперь в плане Index Scan, а не Full Table Scan.

➡️ SQL Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍147🔥7👎1
🖥 SQL-генерация таблицы умножения без циклов!

В SQL нет привычных циклов, но есть полезные инструменты, которые позволяют строить повторяющиеся структуры (например, таблицу умножения 10×10).

Сегодня в посте:
Генерируем числа от 1 до 10 с помощью GENERATE_SERIES();

Объединяем их в пары через CROSS JOIN;

Считаем произведения и форматируем результат в матрицу.


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

➡️ SQL Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥107
🔥208👍7
В ПОГОНЕ ЗА ИНФОРМАЦИЕЙ - ТЫ МОЖЕШЬ СТАТЬ НОВОЙ ИНФОРМАЦИЕЙ🇷🇺

Список несогласных ниже:

hck wrr – расскажут, почему ты сам себя продаешь властям, если кормишь сайт печеньем.

scr snk – новостной кибер-без. Ты просто в курсе интернет-угоз и событий индустрии.

insc lrd – скачиваемый оффлайн википедик от всех кибер-тараканов.

Дальше ты сам!
Please open Telegram to view this post
VIEW IN TELEGRAM
👎41🔥1