Пользователи Postgres любят CTE, потому что они делают сложные SQL-запросы более понятными, удобными для создания, редактирования и повторного использования
Простота – CTE позволяют разбить запрос на логические части, определяя подзапросы в начале. Это похоже на структуру книги с главами — каждая часть выполняет свою роль
Каждую часть CTE можно протестировать отдельно, как самостоятельный запрос. Это упрощает пошаговую сборку и отладку. Также можно временно отключать части CTE, комментируя их
Один и тот же CTE можно использовать несколько раз в одном запросе, не дублируя логику. Это экономит время и делает код чище👍
👉 @SQLPortal
Простота – CTE позволяют разбить запрос на логические части, определяя подзапросы в начале. Это похоже на структуру книги с главами — каждая часть выполняет свою роль
Каждую часть CTE можно протестировать отдельно, как самостоятельный запрос. Это упрощает пошаговую сборку и отладку. Также можно временно отключать части CTE, комментируя их
Один и тот же CTE можно использовать несколько раз в одном запросе, не дублируя логику. Это экономит время и делает код чище
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤3
Сбросьте последовательность Oracle к минимальному значению (или максимальному, если она убывает) с помощью:
Если нужно задать конкретное значение для следующего числа, добавьте START WITH, например:
👉 @SQLPortal
ALTER SEQUENCE ... RESTART
Если нужно задать конкретное значение для следующего числа, добавьте START WITH, например:
ALTER SEQUENCE ... RESTART START WITH 42
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Хочешь узнать, что происходит, когда ты отправляешь SQL в базу данных Oracle?
Поиграйся с ORASIM от Gilson Martins — это интерактивный инструмент, который показывает, как процессы базы данных взаимодействуют с её файлами для чтения и записи данных
👍 — имба
👉 @SQLPortal
Поиграйся с ORASIM от Gilson Martins — это интерактивный инструмент, который показывает, как процессы базы данных взаимодействуют с её файлами для чтения и записи данных
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Совет по PostgreSQL:
Если у вас есть результат из 3 столбцов, PostgreSQL может преобразовать его в сводную таблицу с помощью команды
Для более сложных наборов данных используйте функцию
👍 — лайк
👉 @SQLPortal
\crosstabview
Если у вас есть результат из 3 столбцов, PostgreSQL может преобразовать его в сводную таблицу с помощью команды
\crosstabview
(в psql).Для более сложных наборов данных используйте функцию
crosstab()
из расширения tablefunc
— она требует более точной настройки с помощью SQL-запросовPlease open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥1
PostgreSQL Anonymizer 2.1 — теперь с размытием изображений
Команда PostgreSQL выпустила обновление расширения Anonymizer до версии 2.1, и теперь оно умеет не только маскировать текстовые данные, но и размывать изображения прямо в базе данных
Это полезно для защиты таких данных, как фото профилей, сканы документов, QR-коды и др. Вместо удаления — просто размытие:
Поддерживаются все стратегии маскирования: динамическое, статическое, анонимные дампы и др.
Доступно для установки через Docker, Ansible, RPM/DEB и работает на многих DBaaS.
Идеальный инструмент для тех, кто работает с прод-данными в тестах и не хочет нарушать приватность.
📎 Подробнее: postgresql.org/news/postgresql-anonymizer-21-blurring-images-3061
👉 @SQLPortal
Команда 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.
Идеальный инструмент для тех, кто работает с прод-данными в тестах и не хочет нарушать приватность.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2
Ключевое слово
В Oracle Database также можно создавать локальные функции, например:
Полезно для форматирования строк или другой логики, используемой в запросе
👉 @SQLPortal
WITH
позволяет создавать именованные подзапросы.В Oracle Database также можно создавать локальные функции, например:
WITH FUNCTION fn
RETURN ... IS BEGIN ... RETURN ...; END;
SELECT fn FROM ...
WHERE fn = ...
Полезно для форматирования строк или другой логики, используемой в запросе
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Ты можешь форматировать даты прямо в PostgreSQL во время выборки!
С помощью функции💖
👉 @SQLPortal
С помощью функции
to_char
можно задать любой нужный формат для даты или временной метки — она даёт очень гибкие возможности форматирования Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Ищем внутри массивов JSON в Oracle SQL с помощью:
👉 @SQLPortal
JSON_EXISTS(
json_data, '$.path.to.array?(@ == $var)'
PASSING 'val' AS $var
)
?(@ == $var)
— ищет элементы массива, совпадающие со значением переменной $var
PASSING 'val' AS $var
— устанавливает значение переменной $var
равным 'val'
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Вышел pgAdmin 4 v9.3 — свежий релиз удобнейшего инструмента для работы с PostgreSQL
Вот что завезли в этой версии:
> Поддержка пространственных типов PostGIS — теперь ещё удобнее работать с геоданными
> SQL в поле ограничения БД — можно задавать ограничения через SQL
> Улучшено управление ролями и правами
> Поддержка лигатур в шрифтах — код стал ещё читаемее
А ещё исправили кучу багов
🔗 Подробнее: https://www.postgresql.org/about/news/pgadmin-4-v93-released-3068/
👉 @SQLPortal
Вот что завезли в этой версии:
> Поддержка пространственных типов PostGIS — теперь ещё удобнее работать с геоданными
> SQL в поле ограничения БД — можно задавать ограничения через SQL
> Улучшено управление ролями и правами
> Поддержка лигатур в шрифтах — код стал ещё читаемее
А ещё исправили кучу багов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1
А вы когда-нибудь задумывались использовать Postgres для выполнения домашки по математике?
В виде SQL-запросов всё выглядит куда проще😁
👉 @SQLPortal
В виде SQL-запросов всё выглядит куда проще
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15😁14🤔4🌚1
Преобразуй строки в столбцы в Oracle SQL с помощью:
А столбцы обратно в строки — с помощью:
Киллиан Линч разбирает детали🤍
👉 @SQLPortal
PIVOT ( agg_fn FOR col IN ( 'val1', 'val2', ... ) )
А столбцы обратно в строки — с помощью:
UNPIVOT ( val FOR col IN ( col1, col2, ... ) )
Киллиан Линч разбирает детали
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
3 шага для оптимизации многоколончатых индексов
Порядок колонок в индексе имеет решающее значение:
1. Найдите колонки, сравниваемые через
2. Расположите их по убыванию количества уникальных значений (от большего к меньшему)
3. Колонки, используемые с
👉 @SQLPortal
Порядок колонок в индексе имеет решающее значение:
1. Найдите колонки, сравниваемые через
=
в ваших WHERE
-условиях2. Расположите их по убыванию количества уникальных значений (от большего к меньшему)
3. Колонки, используемые с
<, >
, или BETWEEN
, поместите в конецPlease open Telegram to view this post
VIEW IN TELEGRAM
👍17🤯1
Вышла PostgreSQL 18 Beta 1 — можно начинать тестить ✍️
— Асинхронный I/O через
— Виртуальные вычисляемые колонки (как в Oracle/MySQL)
— Skip scan в B-деревьях
— Параллельное построение GIN-индексов
— Улучшения в
Финальный релиз ожидается осенью, сейчас — лучшее время гонять бенчмарки и готовить миграции.
> Подробнее:
https://www.postgresql.org/about/news/postgresql-18-beta-1-released-3070/
👉 @SQLPortal
— Асинхронный I/O через
io_uring
→ до 3x быстрее на Linux— Виртуальные вычисляемые колонки (как в Oracle/MySQL)
— Skip scan в B-деревьях
— Параллельное построение GIN-индексов
— Улучшения в
OR, IN, MERGE
, репликации, логах и конфигеФинальный релиз ожидается осенью, сейчас — лучшее время гонять бенчмарки и готовить миграции.
> Подробнее:
https://www.postgresql.org/about/news/postgresql-18-beta-1-released-3070/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
MongoDB в основном написан на C++, но использует JavaScript для своей оболочки и Python — для некоторых инструментов и драйверов.
📌 Разберёмся — MongoDB
✰ В основе MongoDB — это NoSQL, документно-ориентированная база данных.
✰ Традиционные реляционные базы хранят данные в таблицах и строках.
Но,
✰ MongoDB внутренне хранит данные в бинарном формате BSON (Binary JSON).
✰ BSON — это надмножество JSON.
✰ Он может представлять всё, что умеет JSON, и дополнительно — типы вроде дат и бинарных данных.
✰ BSON более компактный, чем JSON, что уменьшает объём хранения и повышает производительность.
✰ Такая структура позволяет естественнее представлять реальные объекты и их связи
👉 @SQLPortal
✰ В основе MongoDB — это NoSQL, документно-ориентированная база данных.
✰ Традиционные реляционные базы хранят данные в таблицах и строках.
Но,
✰ MongoDB внутренне хранит данные в бинарном формате BSON (Binary JSON).
✰ BSON — это надмножество JSON.
✰ Он может представлять всё, что умеет JSON, и дополнительно — типы вроде дат и бинарных данных.
✰ BSON более компактный, чем JSON, что уменьшает объём хранения и повышает производительность.
✰ Такая структура позволяет естественнее представлять реальные объекты и их связи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1
Совет по Postgres: используйте
Такой код читается лучше, соответствует идиомам SQL и часто работает быстрее🤍
👉 @SQLPortal
filter
вместо case when
для условных агрегатных функцийТакой код читается лучше, соответствует идиомам SQL и часто работает быстрее
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍6
Вышли обновления PostgreSQL: 17.5, 16.9, 15.13, 14.18 и 13.21
Исправлена уязвимость (CVE-2025-4207) — баг в проверке кодировки GB18030 мог крашить процесс.
Плюс 60+ фиксов:
— Фикс MERGE с DO NOTHING
— Правки BRIN bloom-индексов
— Улучшения в планировщике и логической репликации
— Обновлены часовые пояса (tzdata 2025b)
📌 Поддержка 13-й версии заканчивается 13 ноября — пора планировать апгрейд.
Детали и список изменений:
https://www.postgresql.org/about/news/postgresql-175-169-1513-1418-and-1321-released-3072/
👉 @SQLPortal
Исправлена уязвимость (CVE-2025-4207) — баг в проверке кодировки GB18030 мог крашить процесс.
Плюс 60+ фиксов:
— Фикс MERGE с DO NOTHING
— Правки BRIN bloom-индексов
— Улучшения в планировщике и логической репликации
— Обновлены часовые пояса (tzdata 2025b)
Детали и список изменений:
https://www.postgresql.org/about/news/postgresql-175-169-1513-1418-and-1321-released-3072/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Новичок в базах данных и ищешь увлекательный способ изучения?
Лови -> «Манга-гид по базам данных»😁
Узнай о нормализации и SQL, следуя за принцессой Руруной, которая использует базы данных для управления фруктовой империей Королевства Код!
👉 @SQLPortal
Лови -> «Манга-гид по базам данных»
Узнай о нормализации и SQL, следуя за принцессой Руруной, которая использует базы данных для управления фруктовой империей Королевства Код!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7