SQL Portal | Базы Данных
14.4K subscribers
599 photos
82 videos
41 files
502 links
Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных

Связь: @devmangx

РКН: https://clck.ru/3H4Wo3
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Группируйте отсортированные строки в пакеты ограниченного размера (бин-пэкинг) в Oracle SQL с помощью:

SELECT ... FROM ... MATCH_RECOGNIZE (
ORDER BY ...
MEASURES ...
PATTERN (total+)
DEFINE total AS SUM(...) <= ...
)


Например, можно сгруппировать продажи по дате в пакеты так, чтобы суммарное значение в каждом пакете было ≤ X

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Нашёл классную вещь — SQLCoder от Defog.ai

Это модель, которая переводит обычные вопросы в точные SQL-запросы

- Специализирован под SQL
- Открытый доступ (Hugging Face, ollama, transformers)
- Очень высокая точность на реальных задачах

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
Шпаргалка по очистке данных SQL

👍 — спасибо

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24
Вред хранимых процедур

📖 Читать: ссылка

👉 @SQLPortal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
6
В Oracle SQL можно проверить, получится ли привести выражение к нужному типу данных, с помощью функции

VALIDATE_CONVERSION ( <expr> AS <datatype>, <fmt> )


Она пытается преобразовать выражение в указанный тип

Если формат не указан, используется формат сеанса (настройки NLS)

Возвращает 1, если преобразование удалось, и 0, если нет

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Нашёл удобный сервис для быстрого запуска SQL-запросов онлайн — RunSQL

> Мгновенно пишешь и выполняешь SQL без установки ПО
> Поддержка PostgreSQL
> Можно быстро делиться своими запросами через ссылку
> Подходит для тестов, демонстраций и обучения

Просто открыл сайт — и сразу работаешь с базой. Минимализм и скорость

👍 — интересный проект

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124
This media is not supported in your browser
VIEW IN TELEGRAM
Группировать строки в последовательные 7-дневные блоки в Oracle SQL можно, округляя дату до начала недели:

TRUNC(dt, 'iw')


А если нужны непоследовательные группы, начинающиеся с даты следующего события?

Тогда используйте сопоставление шаблонов (MATCH_RECOGNIZE):

MATCH_RECOGNIZE (
...
PATTERN (init w7*)
DEFINE w7 AS dt < init.dt + 7
)


👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Недавно нашёл отличную книгу — "SQL Projects on Banking & Finance" от Dr. Eyo Eyo.

Это практическое пособие, где на реальных задачах из банковской и финансовой сферы учат писать SQL-запросы.
Внутри — 44 бизнес-сценария: от анализа транзакций и расчёта процентов по кредитам до поиска высокоценных клиентов

Рекомендую, если хотите перейти от "SELECT * FROM ..." к решению реальных бизнес-проблем 👍

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥112
This media is not supported in your browser
VIEW IN TELEGRAM
Хочешь удалить дубликаты строк в Oracle SQL?

Используй:

DELETE FROM ...
WHERE ROWID NOT IN (
SELECT MIN(ROWID)
FROM ...
GROUP BY col1, col2, ...
);


Укажи столбцы с дубликатами в выражении GROUP BY

Этот запрос сохраняет одну строку для каждого набора значений в списке и удаляет остальные

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥2
Руководство для начинающих по блокировкам в базах данных и явлению потерянного обновления

📖 Читать: ссылка

👉 @SQLPortal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
Пользователи Postgres любят CTE, потому что они делают сложные SQL-запросы более понятными, удобными для создания, редактирования и повторного использования

Простота – CTE позволяют разбить запрос на логические части, определяя подзапросы в начале. Это похоже на структуру книги с главами — каждая часть выполняет свою роль

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

Один и тот же CTE можно использовать несколько раз в одном запросе, не дублируя логику. Это экономит время и делает код чище 👍

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍193
SQL Plan Baseline, SQL Patch и SQL Profile

📖 Читать: ссылка

👉 @SQLPortal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Сбросьте последовательность Oracle к минимальному значению (или максимальному, если она убывает) с помощью:

ALTER SEQUENCE ... RESTART


Если нужно задать конкретное значение для следующего числа, добавьте START WITH, например:

ALTER SEQUENCE ... RESTART START WITH 42


👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Хочешь узнать, что происходит, когда ты отправляешь SQL в базу данных Oracle?

Поиграйся с ORASIM от Gilson Martins — это интерактивный инструмент, который показывает, как процессы базы данных взаимодействуют с её файлами для чтения и записи данных

👍 — имба

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Совет по PostgreSQL: \crosstabview

Если у вас есть результат из 3 столбцов, PostgreSQL может преобразовать его в сводную таблицу с помощью команды \crosstabview (в psql).

Для более сложных наборов данных используйте функцию crosstab()из расширения tablefunc — она требует более точной настройки с помощью SQL-запросов

👍 — лайк

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥1
image_2025-05-04_08-47-03.png
895 KB
Шпаргалка по SQL для собеседований

Скачать шпаргалку в PDF: http://midu.link/sql-pdf

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
5🤔3
PostgreSQL Anonymizer 2.1 — теперь с размытием изображений

Команда PostgreSQL выпустила обновление расширения Anonymizer до версии 2.1, и теперь оно умеет не только маскировать текстовые данные, но и размывать изображения прямо в базе данных

Это полезно для защиты таких данных, как фото профилей, сканы документов, QR-коды и др. Вместо удаления — просто размытие:

SECURITY LABEL FOR anon ON COLUMN user.photo
IS 'MASKED WITH FUNCTION anon.image_blur(photo, 5.0)';


Поддерживаются все стратегии маскирования: динамическое, статическое, анонимные дампы и др.

Доступно для установки через Docker, Ansible, RPM/DEB и работает на многих DBaaS.

Идеальный инструмент для тех, кто работает с прод-данными в тестах и не хочет нарушать приватность.

📎 Подробнее: postgresql.org/news/postgresql-anonymizer-21-blurring-images-3061

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62
Шардировать или не шардировать

📖 Читать: ссылка

👉 @SQLPortal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Ключевое слово WITH позволяет создавать именованные подзапросы.

В Oracle Database также можно создавать локальные функции, например:

WITH FUNCTION fn 
RETURN ... IS BEGIN ... RETURN ...; END;
SELECT fn FROM ...
WHERE fn = ...


Полезно для форматирования строк или другой логики, используемой в запросе

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Ты можешь форматировать даты прямо в PostgreSQL во время выборки!

С помощью функции to_char можно задать любой нужный формат для даты или временной метки — она даёт очень гибкие возможности форматирования 💖

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍134