Спринт 13/24 → Тема 4/9: Взаимоотношения между таблицами. Типы объединения таблиц → Урок 1/14

Кратко:
  • Образ результата и декомпозиция важны для понимания сложных задач.
  • Формулировка задач должна быть конкретной и понятной.
  • Представление итоговой таблицы и выбор полей важны для заказчика.
  • Оценка понимания заказчиком результатов важна для успешного выполнения задачи.
  • Задавайте вопросы и обсуждайте детали с заказчиком для лучшего понимания.
  • Декомпозиция помогает разбить сложные задачи на более простые и контролировать результат.
  • Декомпозиция полезна для новичков, но имеет некоторые недостатки.

Спринт 13/24 → Тема 4/9: Взаимоотношения между таблицами. Типы объединения таблиц → Урок 2/14

Кратко:
  • Базы данных позволяют работать с большим количеством данных, разделенных на несколько таблиц.
  • Разделение таблиц на подтаблицы упрощает поиск информации и внесение изменений.
  • Для связи таблиц используются ключи: первичный ключ уникален для каждой записи, а внешний ключ указывает на первичный ключ другой таблицы.
  • Разделение данных на таблицы и связывание их ключами облегчает поиск информации и упрощает внесение изменений.

Спринт 13/24 → Тема 4/9: Взаимоотношения между таблицами. Типы объединения таблиц → Урок 3/14

Кратко:
  • Виды связей между таблицами в базах данных: "один к одному", "один ко многим" и "многие ко многим".
  • Связь "один к одному" предполагает, что одна запись первой таблицы связана только с одной записью другой таблицы.
  • Связь "один ко многим" предполагает, что одной записи первой таблицы соответствует несколько записей второй таблицы.
  • Связь "многие ко многим" предполагает, что одной записи одной таблицы соответствует нескольким записям другой таблицы и наоборот.
  • Реализовать связь "многие ко многим" может быть сложно, поэтому можно использовать соединительную таблицу.
  • Между таблицей с преподавателями и соединительной таблицей будет связь "один ко многим".
  • Одному преподавателю будет соответствовать несколько записей в соединительной таблице.

Спринт 13/24 → Тема 4/9: Взаимоотношения между таблицами. Типы объединения таблиц → Урок 4/14

Кратко:
  • Графическое отображение связей в базе данных с помощью ER-диаграмм.
  • ER-диаграммы помогают специалистам описать взаимосвязи между таблицами.
  • ER-диаграмма содержит название таблицы, поля, информацию о ключах и связи между таблицами.
  • Связь между таблицами обозначается линией, соединяющей первичный ключ одной + + таблицы с внешним ключом другой.
  • Типы связей на ER-диаграмме обозначаются разными условными обозначениями.
  • ER-диаграммы разрабатываются на этапе проектирования и облегчают работу с базой данных.
  • Документацию о структуре и связях в базе данных можно получить у администратора базы или инженера данных.

Спринт 13/24 → Тема 4/9: Взаимоотношения между таблицами. Типы объединения таблиц → Урок 5/14

Кратко:
  • Переименование полей и таблиц в SQL.
  • Псевдонимы полей и таблиц - временное изменение имени.
  • Стандартное использование псевдонимов с оператором AS.
  • Упрощенный способ псевдонимов в PostgreSQL через пробел.
  • Пример использования псевдонимов для улучшения запроса.
  • Ограничения использования псевдонимов в WHERE, HAVING и GROUP BY.
  • Порядок выполнения запросов в SQL: сначала отбор данных, затем присвоение псевдонимов.

Спринт 13/24 → Тема 4/9: Взаимоотношения между таблицами. Типы объединения таблиц → Урок 6/14

Кратко:
  • Псевдонимы используются для присвоения имени полю или таблице.
  • В PostgreSQL псевдонимы можно задавать через пробел.
  • Псевдонимы могут использоваться после операторов GROUP BY и ORDER BY.
  • Псевдонимы нельзя использовать после операторов WHERE и HAVING.
  • Для удобства решения задач можно скачать PDF-версию ER-диаграммы или открыть ее в соседней вкладке.

B_SQL. Задача 1

B_SQL. Задача 2

B_SQL. Задача 3

Спринт 13/24 → Тема 4/9: Взаимоотношения между таблицами. Типы объединения таблиц → Урок 7/14

Кратко:
  • Таблицы можно объединять для упрощения работы с данными.
  • Пример задачи: выгрузка таблицы с данными пользователей, совершивших заказы.
  • Объединение таблиц с помощью операторов JOIN.
  • Тип INNER JOIN: объединение по общей области между двумя таблицами.
  • Тип LEFT OUTER JOIN: включение всех записей из левой таблицы, совпадение с правой таблицей по нужному полю.
  • Тип RIGHT OUTER JOIN: приоритет у правой таблицы, совпадение с левой таблицей по нужному полю.
  • Тип FULL OUTER JOIN: объединение всех записей из обеих таблиц, NULL вместо отсутствующих данных.

Спринт 13/24 → Тема 4/9: Взаимоотношения между таблицами. Типы объединения таблиц → Урок 8/14

Кратко:
  • ER-диаграмма отражает взаимосвязи между таблицами в базе данных.
  • Внешние ключи позволяют объединить таблицы.
  • Псевдонимы позволяют привязывать поле к конкретной таблице.
  • Оператор INNER JOIN используется для объединения таблиц.
  • Задача: составить список из десяти покупателей с самыми крупными заказами в США.
  • Таблицы invoice и client связаны через поле customer_id.
  • Оператор INNER JOIN подходит для исключения пользователей без заказов и идентификаторов.
  • В PostgreSQL используются два вида записи оператора INNER JOIN: полная запись и короткая форма JOIN.
  • Поле total из таблицы invoice необходимо для определения суммы заказа.
  • Поле first_name и last_name из таблицы client также должны быть включены в итоговую таблицу.
  • Условие WHERE i.billing_country = 'USA' отбирает пользователей из США.
  • Отсортировав таблицу по средней сумме заказа от большего к меньшему, можно получить нужный список.

B_SQL. Задача 1

B_SQL. Задача 2

B_SQL. Задача 3

B_SQL. Задача 4

B_SQL. Задача 5

B_SQL. Задача 6

Спринт 13/24 → Тема 4/9: Взаимоотношения между таблицами. Типы объединения таблиц → Урок 9/14

Кратко:
  • LEFT OUTER JOIN и RIGHT OUTER JOIN - операторы для объединения таблиц.
  • LEFT OUTER JOIN: все записи из левой таблицы включаются в результат, записи из правой таблицы включаются, если значения в поле совпадают.
  • RIGHT OUTER JOIN: бóльшим приоритетом обладает правая таблица.
  • Пример: объединение данных таблиц artist и album для вывода всех исполнителей с информацией о музыкальных альбомах.
  • LEFT OUTER JOIN и RIGHT OUTER JOIN взаимозаменяемы, достаточно поменять местами таблицы в запросе.
  • Агрегирование и сортировка: подсчёт количества альбомов на одного исполнителя и вывод топ-10 исполнителей с наибольшим количеством альбомов.

B_SQL. Задача 1

B_SQL. Задача 2

B_SQL. Задача 3

B_SQL. Задача 4

B_SQL. Задача 5

B_SQL. Задача 6

Спринт 13/24 → Тема 4/9: Взаимоотношения между таблицами. Типы объединения таблиц → Урок 10/14

Кратко:
  • Оператор FULL OUTER JOIN используется для объединения таблиц без прямой связи.
  • Объединение таблиц может быть выполнено с помощью полей с одинаковыми названиями и схожим содержанием.
  • Оператор FULL OUTER JOIN выводит все записи из левой и правой таблиц.
  • Пример использования оператора: SELECT a.actor_id, a.first_name, a.last_name, c.first_name, c.last_name FROM actor AS a FULL OUTER JOIN client AS c ON a.last_name = c.last_name LIMIT 10.
  • FULL OUTER JOIN не рекомендуется использовать на больших таблицах, так как это может привести к увеличению размера таблицы.

Спринт 13/24 → Тема 4/9: Взаимоотношения между таблицами. Типы объединения таблиц → Урок 11/14

Кратко:
  • Порядок выполнения операторов важен для корректного выполнения запроса.
  • Запрос начинается с оператора SELECT, затем следует FROM, WHERE, GROUP BY и другие операторы.
  • HAVING всегда указывается после GROUP BY, но никогда перед ним.
  • Сначала определяется источник данных с помощью оператора FROM.
  • Затем происходит фильтрация данных с помощью оператора WHERE.
  • После срезов данные группируются с помощью оператора GROUP BY.
  • На следующем этапе происходит выбор данных с помощью оператора SELECT.
  • После SELECT срабатывает ключевое слово DISTINCT, которое отбирает уникальные значения.

Спринт 13/24 → Тема 4/9: Взаимоотношения между таблицами. Типы объединения таблиц → Урок 12/14

Кратко:
  • Альтернативные варианты присоединения: UNION и UNION ALL
  • Оператор UNION используют, чтобы объединить выдачу SQL-запросов
  • Два правила регламентируют использование операторов UNION и UNION ALL
  • Извлекать поля из одной таблицы нужно в том же порядке, что и из другой
  • Число извлекаемых полей тоже должно совпадать
  • Типы данных в полях должны соответствовать друг другу
  • Оператор UNION устроен так, что абсолютные дубликаты в итоговую таблицу не входят
  • Оператор UNION ALL устроен по-другому, все записи вошли в таблицу

Спринт 13/24 → Тема 4/9: Взаимоотношения между таблицами. Типы объединения таблиц → Урок 13/14

Кратко:
  • Статья посвящена теме "Взаимоотношения между таблицами" в SQL.
  • Рассматриваются первичные и внешние ключи таблиц, способы объединения таблиц, типы присоединения и операторы JOIN.
  • Обсуждается альтернативный способ объединения таблиц с помощью UNION.
  • Рекомендуется скачать шпаргалку для закрепления полученных знаний.
Заключение

Тема «Взаимоотношения между таблицами» позади. Вы столько всего успели:

  • разобрались с первичными и внешними ключами таблиц;
  • научились объединять таблицы разными способами;
  • изучили разные типы присоединения и операторы JOIN;
  • узнали, как можно по-другому объединять таблицы с помощью UNION.

Заберите с собой

Чтобы ничего не забыть, скачайте шпаргалку.

Спринт 13/24 → Тема 4/9: Взаимоотношения между таблицами. Типы объединения таблиц → Урок 14/14

Проверочные задания.