SQL Portal | Базы Данных
13.9K subscribers
992 photos
137 videos
51 files
752 links
Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных

Связь: @devmangx

РКН: https://clck.ru/3H4Wo3
Download Telegram
Gridex - современная AI-native IDE для работы с базами данных

Поддерживает PostgreSQL, MySQL, SQLite, Redis, MongoDB, SQL Server и ClickHouse, включает встроенный AI-чат (Claude, GPT, Gemini, Ollama), MCP-сервер для AI-агентов, ER-диаграммы, редактор запросов и инструменты анализа схем.

Работает нативно на macOS, Windows и Linux - без Electron и Java. Интересная альтернатива TablePlus, DBeaver и DataGrip для тех, кто активно использует SQL и AI в ежедневной работе.

https://github.com/gridex/gridex

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍1
Запуск open-source платформы PostgreSQL в Kubernetes с использованием copy-on-write для ветвления данных объёмом в терабайты за считанные секунды и автоматической гибернацией при простое для экономии ресурсов — подходит для компаний, которые строят внутренние базы данных или быстро поднимают окружения для разработки и тестирования.

Xata — это open-source облачная платформа PostgreSQL, которая умеет одновременно управлять большим количеством инстансов Postgres в Kubernetes. Ключевые возможности: создание веток данных объёмом в терабайты за секунды и автоматическое масштабирование до нуля при простое с последующим пробуждением при новых подключениях.

На уровне инфраструктуры используется CloudNativePG для управления и обслуживания Postgres и OpenEBS для хранения, а на верхнем уровне доступны встроенные SQL-шлюз, управление ветками, REST API и CLI. Компании могут использовать её для построения внутренних платформ баз данных или быстро выделять отдельную копию данных для каждого разработчика и каждого тестового запуска с последующей автоматической гибернацией для экономии ресурсов и затрат.

100% опенсорс

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
SQL-совет, который избавит начинающих от множества ошибок

Многие новички путают WHERE и HAVING.
Запомните простое правило:

WHERE фильтрует отдельные строки.
HAVING фильтрует уже сгруппированные результаты.

Пример
WHERE salary > 50000


Отбирает строки до выполнения группировки.
HAVING COUNT(*) > 5


Отбирает группы после выполнения GROUP BY.
Запомните порядок выполнения SQL-запроса
WHERE → GROUP BY → HAVING


Или проще:
WHEREсначала;
GROUP BYгруппировка;
HAVINGпосле группировки.

Если SQL кажется сложным, проблема чаще всего не в самом запросе, а в непонимании порядка его выполнения.

Освойте этот принцип один раз — и работа с JOIN, агрегатными функциями и аналитическими отчётами станет намного понятнее.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
PortSwigger выкатили огромную базу знаний по веб-безопасности

Не просто статьи, а полноценный хаб по уязвимостям: XSS, SQL-инъекции, CSRF, баги в аутентификации, API и многое другое. Всё удобно разложено по темам и уровням сложности

Плюс к каждой теме идут практические лаборатории, где можно на практике разобраться, как работают уязвимости 🚨

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
4 сайта, которые помогут прокачать SQL через практику

Если обычные упражнения уже наскучили, попробуйте изучать SQL в игровом формате.

SQL Murder Mystery
https://mystery.knightlab.com

Расследуйте убийство, используя SQL-запросы для поиска улик и подозреваемых.

SQLBolt
https://sqlbolt.com

Один из лучших интерактивных курсов для новичков с теорией и практическими заданиями.

SQLZoo
https://sqlzoo.net

Большая коллекция уроков и задач по SQL с проверкой решений прямо в браузере.

Select Star SQL
https://selectstarsql.com

Обучение SQL в формате интерактивной игры с постепенным усложнением заданий.

Лучший способ освоить SQL — как можно больше практиковаться. Попробуйте один из этих сервисов уже сегодня и превратите обучение в игру.
4
5 причин использовать Common Table Expressions (CTE)

CTE (Common Table Expressions) делают сложные SQL-запросы более понятными, удобными в сопровождении и отладке.

1. Разбивают сложную логику на понятные этапы:

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

2. Упрощают отладку:

Если в запросе возникла ошибка, каждое CTE можно проверить отдельно, не анализируя весь SQL целиком.

3. Позволяют повторно использовать результат:

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

4. Лучше подходят для сложных запросов:

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

5. Делают запросы более естественными для чтения:

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

CTE — один из самых полезных инструментов SQL. Освоив их, вы сможете писать более читаемые, структурированные и поддерживаемые запросы.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2
SQL-совет: ORDER BY по нескольким столбцам

При использовании ORDER BY с несколькими столбцами база данных сначала сортирует весь результат по первому указанному столбцу (в данном примере — sales).

В результате образуются группы строк с одинаковыми значениями. Например, Mira и Bob оказываются в одной группе, потому что у обоих значение sales равно 12 000.

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

Поскольку второй столбец — age, а сортировка выполняется по возрастанию (ASC), сначала будет выведена Mira (30 лет), а затем Bob.

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

Что если совпадают значения и во втором столбце? Если одинаковыми оказываются значения и второго столбца, всё зависит от конкретной СУБД. Некоторые базы данных, особенно при работе с небольшими наборами данных, могут сохранить порядок вставки записей как дополнительный критерий сортировки.

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

Совет: если вам важен полностью предсказуемый порядок результатов, всегда добавляйте в ORDER BY дополнительный столбец с уникальными значениями (например, id). Это обеспечит стабильную и воспроизводимую сортировку.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2
Настоящая библия разработчика «Codecademy Cheatsheets»

Самая большая библиотека шпаргалок что я когда либо встречал — PDF и онлайн чек-листы по Python, JS, SQL, Bash, DevOps, ML, security и множеству других тем

Ваш помощник на собеседованиях или при кодинге. За такое можно и лайк поставить ❤️

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74
SQL-совет: функция NULLIF()

Функция NULLIF() сравнивает два выражения.
Если они равны, функция возвращает NULL.
Если не равны, возвращается первое выражение.

Пример
SELECT NULLIF(10, 10);


Результат:
NULL


Поскольку оба значения одинаковые, NULLIF() возвращает NULL.

Функция особенно полезна, когда нужно избежать ошибки деления на ноль или заменить определённое значение на NULL для дальнейшей обработки.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42
Подборка SQL-запросов для быстрой диагностики PostgreSQL, которые помогают обнаружить проблемы ещё до того, как они перерастут в серьёзные сбои.

В статье собраны готовые запросы для поиска «мёртвых» строк, самых затратных SQL-запросов, таблиц с частыми Seq Scan, неиспользуемых индексов, зависших транзакций и блокировок, а также для оценки эффективности кэша PostgreSQL.

Автор не только приводит SQL, но и объясняет, что означают результаты, какие значения считаются тревожными и как исправить найденные проблемы.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
SQL-совет: ORDER BY может учитывать регистр

Многие считают, что сортировка текста в SQL всегда происходит просто — от A до Z. Но это не всегда так.

В зависимости от СУБД и настроек сортировки (collation), ORDER BY может учитывать регистр символов.

Например, вместо привычного порядка:
apple
banana
cherry

вы можете получить:
Apple
Banana
apple
banana


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

Как отключить чувствительность к регистру? В SQLite для этого можно использовать COLLATE NOCASE:

SELECT *
FROM users
ORDER BY name COLLATE NOCASE;


Так SQL будет сортировать значения без учёта регистра, не изменяя сами данные.

Если результаты ORDER BY выглядят странно, первым делом проверьте настройки collation — именно они часто определяют, как база данных сравнивает и сортирует текст.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
Сегодня я разбирал реальные бизнес-кейсы на основе финтех-датасета.

Что удалось сделать:

Создал таблицу для проверки крупных транзакций.

Добавил тестовые транзакции вручную.
Автоматически перенёс успешные транзакции свыше ₦100 000 в отдельную таблицу с помощью INSERT INTO ... SELECT.

Но главный урок оказался вовсе не в синтаксисе SQL.

Я столкнулся с классической ошибкой новичков. Исходная таблица использовала стиль именования PascalCase (TransactionAmount), а новую таблицу я создал в snake_case (transaction_amount).

Из-за этого мои запросы постоянно выдавали ошибки.

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

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Вопрос по SQL:

Что вернёт этот запрос, если значение score равно NULL?

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4😁1
Варианты
Anonymous Quiz
5%
A
20%
B
60%
C
15%
D
1
20 нюансов PostgreSQL, о которых нужно знать

Подробный разбор основных аспектов работы с PostgreSQL — NULL, JSONB, индексация, вывод и многое другое.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
4
This media is not supported in your browser
VIEW IN TELEGRAM
Нашли мощный AI-клиент для работы с базами данных

Chat2DB набрал почти 27 тысяч звёзд на GitHub

Что умеет:

Генерировать SQL-запросы по описанию на естественном языке — достаточно написать, что нужно получить, и ИИ сам составит запрос, включая сложные JOIN.

Работать сразу с десятками СУБД: MySQL, PostgreSQL, Oracle, SQL Server, SQLite и многими другими.

Анализировать данные и строить графики — можно просто спросить, например, «покажи продажи за прошлый месяц», и инструмент сам подготовит визуализацию.

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

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
5
PostgreSQL vs MySQL

Обе СУБД написаны на языке C, но их архитектура устроена по-разному.

PostgreSQL: PostgreSQL использует процессную архитектуру (process-based). Представьте завод, где есть управляющий (Postmaster), который координирует работу отдельных сотрудников. Для каждого нового подключения создаётся собственный процесс, а все процессы используют общую область памяти. Фоновые процессы независимо выполняют запись данных на диск, очистку базы (VACUUM), ведение журналов и другие служебные задачи.

MySQL: MySQL использует потоковую архитектуру (thread-based). Здесь один сервер одновременно обслуживает множество подключений с помощью потоков. Ещё одна особенность — поддержка подключаемых движков хранения (например, InnoDB и MyISAM), которые можно выбирать в зависимости от требований проекта.

А какую СУБД предпочитаете вы — PostgreSQL или MySQL?

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
Те же AI-модели, но до 90% дешевле: как это работает в OdiRouter.ai?

Например, GPT-5.6 Sol: официальная цена — $5/M за input и $30/M за output.
В OdiRouter текущая цена со скидкой — $0.49/M за input и $2.94/M за output.

Или Claude Fable 5: официальная цена — $10/M за input и $50/M за output.
В OdiRouter текущая цена со скидкой — $2.5/M за input и $12.5/M за output.

Разница заметная. Вопрос: как они это делают?

OdiRouter — это не один отдельный AI-сервис, а единый API-вход к 200+ моделям: GPT, Claude, Gemini, Grok, Kimi, генерация изображений, видео и мультимодальные модели.

Самое интересное, что бесплатно сейчас можно запустить не только LLM, но и такие image-модели, как GPT Image 2 и Nano Banana 2, а также Kimi K3, Grok 4.5, GPT-5.5, Claude Opus 4.8, Gemini 3.5 Flash и другие популярные модели. Всё работает напрямую, без VPN.

Такой инструмент лучше не просто сохранять “на потом”, а сразу прогнать на своих prompt’ах.

Если делаете bot, agent, SaaS, небольшой AI-инструмент или генерацию изображений/видео, разница быстро становится видна: одна и та же задача, но стоимость моделей может привести к совсем разным счетам.

👉бесплатный доступ к API: https://odirouter.ai/?utm_source=devman&channel=telegram

👉По техническим вопросам: @OdiRouter
👍3🔥3🏆3
Google выпустила Open Knowledge Format (OKF) — открытый формат для хранения знаний, понятный и людям, и ИИ-агентам.

Что внутри:

Представляет знания в виде обычных Markdown-файлов с YAML-метаданными — без привязки к конкретному фреймворку или поставщику моделей.

Подходит для описания таблиц БД, API, метрик, документации, плейбуков и других артефактов в едином формате.

Все данные можно хранить в Git, версионировать, связывать между собой и использовать как базу знаний для ИИ-агентов или поисковых систем.

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

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3👍1
Фатальная ошибка в pandas

Такой код не фильтрует значения NULL или None:
df[df['user_id'] != None]


В pandas пропущенные значения представлены как NaN или None, но оператор != работает с ними не так, как многие ожидают.

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

Вместо этого используйте:
df[df['user_id'].notna()]


или
df.dropna(subset=['user_id'])


Для проверки пропущенных значений в pandas всегда используйте методы isna() и notna(), а не операторы == или !=.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Forwarded from infosec
• Друзья, пришло время провести очередной конкурс. На этот раз мы разыгрываем бумажную версию книги "The Ultimate Kali Linux Book" - это новое издание книги по изучению Kali Linux, которое перевели на русский язык.

• К слову, книга содержит более 800 страниц информации и будет полезна как новичкам, так и опытным специалистам.

Итоги подведём 8 августа в 10:00, при помощи бота, который рандомно выберет 8 победителей. Доставка для победителей бесплатная в зоне действия СДЭК. Удачи

Для участия нужно:

1. Быть подписанным на наш канал: Infosec.
2. Подписаться на канал наших друзей: Мир Linux.
3. Нажать на кнопку «Участвовать»;
4. Ждать результат.

Бот может немного подвиснуть — не переживайте! В таком случае просто нажмите еще раз на кнопку «Участвовать».

#Конкурс
Please open Telegram to view this post
VIEW IN TELEGRAM