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

Автор: @energy_it

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

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

В SQL можно эмулировать сводные таблицы через конструкцию CASE + агрегатные функции.

Создадим таблицу и данные:
CREATE TABLE Sales (
id INT,
region VARCHAR(20),
amount DECIMAL(10,2)
);
INSERT INTO Sales VALUES
(1, 'North', 100.00),
(2, 'South', 200.00),
(3, 'West', 150.00),
(4, 'North', 120.00);


Пример разворота, CASE выделяет значения по условию, а агрегатная функция сводит их в колонку. Здесь используется MAX, поэтому для North берётся 120 (максимум):
SELECT 
MAX(CASE WHEN region = 'North' THEN amount END) AS North,
MAX(CASE WHEN region = 'South' THEN amount END) AS South,
MAX(CASE WHEN region = 'West' THEN amount END) AS West
FROM Sales;


Если нужно посчитать итоги — ставим SUM вместо MAX:
SELECT 
SUM(CASE WHEN region = 'North' THEN amount ELSE 0 END) AS North,
SUM(CASE WHEN region = 'South' THEN amount ELSE 0 END) AS South,
SUM(CASE WHEN region = 'West' THEN amount ELSE 0 END) AS West
FROM Sales;


🔥 Приём применяется, когда список колонок известен заранее и нужна статическая отчётная форма.

➡️ SQL Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥5🤝52
🖥 Разбираем управление схемами и объектами!

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

➡️ SQL Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍128🔥5
👍105🤝5
Что же выведет консоль?
Anonymous Quiz
19%
A
24%
B
14%
C
43%
D
🤝15🔥8👍7👎1
🖥 CTE (WITH RECURSIVE) — строим иерархии прямо в SQL!

Нужно развернуть структуру сотрудников, дерево категорий или связи задач? Рекурсивные CTE позволяют обходить вложенные данные без лишнего кода и процедур.

Сегодня в посте:
Строим иерархию сотрудников с уровнями вложенности;

Ограничиваем глубину рекурсии для контроля результата;

Формируем дерево категорий с полными путями «каталог > подраздел».


Подход, который превращает сложные графы и деревья в один читаемый запрос.

➡️ SQL Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍10🔥6🤝1
Автоматический пересчёт скидок и итоговой суммы!

Не обязательно считать скидки и финальную стоимость на уровне приложения — SQL может делать это сам.

Добавим вычисляемое поле с финальной суммой:
ALTER TABLE orders
ADD COLUMN total_with_discount NUMERIC(12,2)
GENERATED ALWAYS AS (
((total * (100 - COALESCE(discount, 0))) / 100)::NUMERIC(12,2)
) STORED;


Теперь при вставке всё считается автоматически:
INSERT INTO orders (total, discount) VALUES (500, 10)
RETURNING total, discount, total_with_discount;
-- total=500.00 | discount=10.00 | total_with_discount=450.00


Также можно обновлять скидки массово:
UPDATE orders
SET discount = CASE
WHEN total > 1000 THEN 15
WHEN total > 500 THEN 10
ELSE 5 END;


🔥 SQL сам пересчитает итог — без ручной логики и ошибок округления. Удобно для биллинга, акций и расчёта чеков в реальном времени.

➡️ SQL Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥137👍3
🖥 SQL-анализ ближайших станций метро для пользователей!

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

В задаче:
Рассчитаем расстояние между пользователями и станциями по координатам;

Найдём ближайшую станцию для каждого пользователя;

Вернём таблицу с названием станции и дистанцией в километрах.


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

➡️ SQL Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18🤝10👍84
This media is not supported in your browser
VIEW IN TELEGRAM
😎 Hacksplaining — разберись в SQL и защити свои проекты от атак!

На Hacksplaining есть полноценный урок SQL Injection, где показывают, как злоумышленники внедряют запросы и как от этого защититься.

Курс не просто теоретический - смотришь код, анализируешь, проверяешь варианты атак и способов защиты. Понимаешь, как работают запросы к базе данных и как их можно исказить под чужие цели.

📌 Оставляю ссылочку: hacksplaining.com

➡️ SQL Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4🤝41