В этой шпаргалке собраны ключевые команды для работы с инфраструктурой базы данных: создание и удаление схем, построение представлений и управление индексами. Они применяются при проектировании архитектуры, оптимизации запросов и организации чистой структуры данных.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤8🔥5
🤝15🔥8👍7👎1
Нужно развернуть структуру сотрудников, дерево категорий или связи задач? Рекурсивные CTE позволяют обходить вложенные данные без лишнего кода и процедур.
Сегодня в посте:
• Строим иерархию сотрудников с уровнями вложенности;
• Ограничиваем глубину рекурсии для контроля результата;
• Формируем дерево категорий с полными путями «каталог > подраздел».
Подход, который превращает сложные графы и деревья в один читаемый запрос.
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 может делать это сам.
Добавим вычисляемое поле с финальной суммой:
Теперь при вставке всё считается автоматически:
Также можно обновлять скидки массово:
🔥 SQL сам пересчитает итог — без ручной логики и ошибок округления. Удобно для биллинга, акций и расчёта чеков в реальном времени.
➡️ SQL Ready | #практика
Не обязательно считать скидки и финальную стоимость на уровне приложения — 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 сам пересчитает итог — без ручной логики и ошибок округления. Удобно для биллинга, акций и расчёта чеков в реальном времени.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤7👍3
Координаты пользователя есть, но важно понять, какая станция метро ближе всего - это база для маршрутов, логистики и даже таргетинга рекламы.
В задаче:
• Рассчитаем расстояние между пользователями и станциями по координатам;
• Найдём ближайшую станцию для каждого пользователя;
• Вернём таблицу с названием станции и дистанцией в километрах.
В результате получаем инструмент для анализа доступности точек, который легко применить к складам, пунктам выдачи или курьерским зонам.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18🤝10👍8❤4
This media is not supported in your browser
VIEW IN TELEGRAM
На Hacksplaining есть полноценный урок SQL Injection, где показывают, как злоумышленники внедряют запросы и как от этого защититься.
Курс не просто теоретический - смотришь код, анализируешь, проверяешь варианты атак и способов защиты. Понимаешь, как работают запросы к базе данных и как их можно исказить под чужие цели.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4🤝4❤1
В этой шпаргалке — ключевые конструкции для построения деревьев и цепочек подчинённости в SQL: рекурсивные запросы, самосоединения и фильтрация уровней. Эти приёмы применяются при моделировании категорий, организационных структур и древовидных меню без сторонних средств.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤4👍4