Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад

Что такое декартово произведение таблиц?

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

Короткий ответ

Декартово произведение таблиц — это операция, которая комбинирует каждую строку из первой таблицы с каждой строкой из второй. Результат содержит все возможные пары строк, поэтому количество строк в результате равно произведению количества строк в исходных таблицах. В SQL это достигается с помощью CROSS JOIN или неявно при отсутствии условия WHERE.

Длинный ответ

Что такое декартово произведение?

Декартово произведение (или CROSS JOIN) — это фундаментальная операция реляционной алгебры, которая соединяет каждую строку одной таблицы с каждой строкой другой таблицы. Если первая таблица содержит N строк, а вторая — M строк, то результатом будет таблица с N * M строками. Эта операция редко используется сама по себе, так как часто приводит к огромному объему данных, но является основой для более сложных соединений, таких как INNER JOIN, где декартово произведение фильтруется условием.

Пример на SQL

Рассмотрим две простые таблицы: employees и departments.

-- Таблица employees
id | name
1  | Alice
2  | Bob

-- Таблица departments
id | dept_name
1  | Sales
2  | IT

-- Декартово произведение (CROSS JOIN)
SELECT * FROM employees CROSS JOIN departments;

-- Результат:
id | name  | id | dept_name
1  | Alice | 1  | Sales
1  | Alice | 2  | IT
2  | Bob   | 1  | Sales
2  | Bob   | 2  | IT

Как видно, каждый сотрудник соединен с каждым отделом. Если бы мы добавили условие WHERE employees.id = departments.id, то получили бы только строки, где id совпадают — это эквивалент INNER JOIN.

Где применяется?

Декартово произведение полезно в следующих случаях:

  • Генерация тестовых данных: например, создание всех возможных комбинаций продуктов и дат для календаря.
  • Создание матриц или перекрестных отчетов.
  • Как промежуточный шаг в оптимизации запросов — базы данных могут использовать его внутри при выполнении JOIN.

Вывод

Декартово произведение — это базовая операция, которую нужно понимать для работы с SQL, но на практике её следует использовать осторожно из-за экспоненциального роста данных. Оно чаще применяется в учебных целях или для генерации комбинаций, а не в production-запросах.

Уровень

  • Рейтинг:

    3

  • Сложность:

    2

Навыки

  • SQL

Ключевые слова

#cartesian product

#cross join

#SQL

#relational algebra

Подпишись на Java Developer в телеграм