SQL, PostgreSQL, MongoDB: 12 промтов, которые превратят AI в вашего аналитика данных

Работа с базами данных — это постоянный компромисс между скоростью, точностью и читаемостью кода. Вы пишете запрос, оптимизируете его, переписываете снова, и всё равно на выполнение уходят часы. Но что, если часть этой рутины можно делегировать AI? Я собрал 12 промтов, которые реально ускоряют работу с SQL, PostgreSQL и MongoDB. Они проверены на практике и подходят как для ежедневных задач, так и для сложных аналитических проектов. Никакой воды — только готовые шаблоны, которые можно скопировать и использовать прямо сейчас.

1. Универсальный оптимизатор SQL-запросов

Для чего: Быстро найти узкие места в существующем запросе и получить оптимизированную версию с пояснениями.

Промт:

Ты — эксперт по оптимизации SQL. Проанализируй следующий запрос и предложи улучшения: [вставьте запрос].
Укажи: (1) конкретные проблемы производительности, (2) оптимизированную версию запроса, (3) объяснение каждого изменения. Используй индексы, подзапросы или CTE, если это уместно.

Пример использования:
Допустим, у вас есть запрос, который выполняется 15 секунд.

SELECT u.name, COUNT(o.id) AS order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.created_at >= '2026-01-01'
GROUP BY u.id, u.name
HAVING COUNT(o.id) > 5;

AI предложит добавить индекс на orders.user_id и users.created_at, заменить LEFT JOIN на INNER JOIN (если null-значения не нужны), и переписать с использованием CTE для читаемости. В итоге запрос ускорится в несколько раз.

2. Генератор сложных JOIN-запросов

Для чего: Когда нужно объединить данные из нескольких таблиц с нестандартными условиями.

Промт:

Сгенерируй SQL-запрос для PostgreSQL, который объединяет таблицы [таблица1] и [таблица2] по полям [поле1] и [поле2]. Используй LEFT JOIN и включи в результат только строки, где [условие]. Также добавь агрегацию с GROUP BY и сортировку по [поле]. Объясни, как работает запрос.

Пример использования:
Нужно получить список клиентов с их последним заказом. Промт: "Сгенерируй SQL-запрос для PostgreSQL, который объединяет таблицы customers и orders по полю customer_id. Используй LEFT JOIN и включи только клиентов с датой регистрации после 2025-01-01. Добавь агрегацию MAX(order_date) и сортировку по name." AI вернёт:

SELECT c.name, MAX(o.order_date) AS last_order_date
FROM customers c
LEFT JOIN orders o ON c.customer_id = o.customer_id
WHERE c.registration_date > '2025-01-01'
GROUP BY c.customer_id, c.name
ORDER BY c.name;

3. Написание хранимой процедуры для PostgreSQL

Для чего: Автоматизация повторяющихся операций, например, ежемесячного обновления агрегированных данных.

Промт:

Напиши хранимую процедуру на PL/pgSQL для PostgreSQL, которая выполняет [описание задачи]. Процедура должна принимать параметры [параметры], обрабатывать ошибки с помощью EXCEPTION и логировать выполнение в таблицу [таблица логов]. Предоставь полный код и пример вызова.

Пример использования:
Нужно создать процедуру, которая архивирует заказы старше 3 лет.

CREATE OR REPLACE FUNCTION archive_old_orders(archive_before_date DATE)
RETURNS VOID AS $$
BEGIN
    INSERT INTO orders_archive
    SELECT * FROM orders WHERE order_date < archive_before_date;
    DELETE FROM orders WHERE order_date < archive_before_date;
    INSERT INTO archive_log(action, timestamp) VALUES ('archived', NOW());
EXCEPTION
    WHEN OTHERS THEN
        RAISE NOTICE 'Error: %', SQLERRM;
END;
$$ LANGUAGE plpgsql;

AI выдаст подобный код с комментариями.

4. Генератор MongoDB-агрегаций

Для чего: Создание сложных пайплайнов агрегации для MongoDB без необходимости помнить все операторы.

Промт:

Создай агрегационный пайплайн MongoDB для коллекции [коллекция], который выполняет: (1) фильтрацию по полю [поле] с условием [условие], (2) группировку по [поле] с вычислением среднего значения [поле2], (3) сортировку по убыванию результата. Предоставь код на JavaScript и объясни каждый этап.

Пример использования:
Нужно найти средний чек по каждому клиенту за последний месяц.

db.orders.aggregate([
  { $match: { order_date: { $gte: new Date('2026-07-01') } } },
  { $group: { _id: "$customer_id", avg_amount: { $avg: "$total" } } },
  { $sort: { avg_amount: -1 } }
]);

AI сгенерирует такой пайплайн с пояснениями.

5. Проектирование схемы базы данных

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

Промт:

Спроектируй схему базы данных для [описание проекта, например, интернет-магазина]. Определи таблицы, поля с типами данных, первичные и внешние ключи. Учитывай нормализацию до 3НФ. Выведи SQL-скрипт для PostgreSQL (или MongoDB-схему) с комментариями.

Пример использования:
Для блога с постами и комментариями AI предложит таблицы users, posts, comments с полями id, title, body, created_at и связями. Добавит индексы для внешних ключей.

6. Объяснение и документирование сложного запроса

Для чего: Понять чужой (или свой старый) запутанный SQL-код и подготовить документацию.

Промт:

Объясни следующий SQL-запрос шаг за шагом как для новичка: [вставьте запрос]. Разбей его на логические блоки, опиши назначение каждого JOIN, условия WHERE и агрегаций. Добавь комментарии к каждой строке.

Пример использования:
Запрос с тремя JOIN и CASE-условием превратится в понятное руководство, которое можно использовать в документации проекта.

7. Генератор тестовых данных

Для чего: Заполнить таблицы реалистичными данными для тестирования.

Промт:

Сгенерируй SQL-запрос для вставки [количество] тестовых записей в таблицу [таблица] с полями [поля]. Используй случайные данные: имена, email, даты в диапазоне [диапазон], числа в диапазоне [диапазон]. Убедись, что данные выглядят реалистично.

Пример использования:
Для таблицы users (id, name, email, created_at) AI сгенерирует: 'INSERT INTO users (name, email, created_at) VALUES (\'Иван Иванов\', \'ivan@example.com\', \'2026-08-01\'), ...' — 100 записей.

8. Поиск и исправление ошибок в запросах

Для чего: Быстро найти синтаксические ошибки и логические проблемы.

Промт:

Исправь ошибки в следующем SQL-запросе (или MongoDB-запросе). Укажи, что было не так, и объясни исправления: [вставьте код].

Пример использования:
Запрос с неверным синтаксисом GROUP BY AI исправит и пояснит, почему нужно перечислять все неагрегированные поля.

9. Перевод SQL в MongoDB и обратно

Для чего: Когда нужно перенести логику между реляционной и документной БД.

Промт:

Переведи следующий SQL-запрос в эквивалентный MongoDB-запрос (агрегацию): [вставьте SQL]. Объясни соответствие операторов SQL ($match, $group, $project и т.д.).

Пример использования:
SQL SELECT customer_id, SUM(amount) FROM orders WHERE status='paid' GROUP BY customer_id превратится в db.orders.aggregate([{ $match: { status: 'paid' } }, { $group: { _id: "$customer_id", total: { $sum: "$amount" } } }]).

10. Анализ производительности и советы по индексам

Для чего: Улучшить скорость запросов за счёт правильных индексов.

Промт:

На основе следующего запроса [вставьте запрос] предложи, какие индексы создать в PostgreSQL (или MongoDB). Объясни, почему они помогут, и покажи синтаксис CREATE INDEX.

Пример использования:
Для запроса с WHERE по created_at и JOIN по user_id AI предложит:

CREATE INDEX idx_orders_user_id ON orders(user_id);
CREATE INDEX idx_orders_created_at ON orders(created_at);

11. Создание отчёта в формате JSON из SQL-данных

Для чего: Подготовить данные для API или визуализации.

Промт:

Напиши SQL-запрос, который возвращает данные в формате JSON (используя json_agg или json_build_object в PostgreSQL). Запрос должен группировать [поле] и вкладывать связанные записи. Предоставь пример вывода.

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

SELECT json_agg(json_build_object('category', c.name, 'products', (SELECT json_agg(p.name) FROM products p WHERE p.category_id = c.id))) AS categories
FROM categories c;

12. Обучение основам SQL для новичков

Для чего: Быстро получить объяснение базовых концепций с примерами.

Промт:

Объясни разницу между INNER JOIN и LEFT JOIN на простых примерах. Покажи, как они влияют на результат, и приведи SQL-код для каждого. Добавь визуальную схему (текстовую).

Пример использования:
AI вернёт таблицу с примерами, объяснит, что INNER JOIN возвращает только совпадающие записи, а LEFT JOIN — все записи из левой таблицы, даже если нет совпадений.

Финальные мысли

Эти промты — не магия, а инструменты. Они экономят часы рутины, но не заменяют понимания баз данных. Используйте их как шпаргалку, адаптируйте под свои задачи и всегда проверяйте результаты. Начните с одного промта, который решает вашу текущую боль, и постепенно внедряйте остальные. Уверен, вы почувствуете разницу уже в первый день.

← Все статьи

Комментарии

Читайте также

Kill The Cookie Banner: как я избавился от надоедливых баннеров с помощью AI-кодинга и поднял конверсию

26 июля 2026

От идеи до деплоя: как LLM-промпты превращают веб-разработку в конвейер генерации кода

29 августа 2026

Как AI-агент ASI Biont автоматизирует работу с Wildberries через API: мониторинг, аналитика и отчёты без кода

15 июля 2026

Как проходит переписывание Rust-кода на Zig: отчёт разработчиков

16 июля 2026

Курс «AI-тестировщик (авто-тесты AI)»: как автоматизировать тестирование с помощью нейросетей и ускорить релизы на 40%

10 июля 2026

Интеграция Kraken с AI-агентом ASI Biont: автоматизация криптоторговли без кода

15 августа 2026

Мультимодальный AI: 10 промтов, которые превращают текст, картинки и видео в единый конвейер

27 августа 2026

Square + ASI Biont: Как подключить AI-агента к платежам без единой строки кода

24 июня 2026

Автоматизация Mailchimp с ASI Biont: AI-маркетинг по электронной почте без кода

16 августа 2026