17:20
Введение в соединения (JOIN): Основные виды соединений.

Курс по SQL

Урок 23: Введение в соединения (JOIN): Основные виды соединений

В этом уроке мы рассмотрим основные виды соединений (JOIN) в SQL, которые используются для объединения строк из двух или более таблиц на основе связанного столбца между ними. Мы изучим INNER JOIN, LEFT JOIN, RIGHT JOIN и FULL JOIN, их синтаксис и примеры использования.

INNER JOIN

INNER JOIN возвращает только те строки, которые имеют совпадающие значения в обеих таблицах. Рассмотрим пример соединения таблиц «Студенты» и «Курсы» по столбцу «КурсID»:

SELECT Студенты.Имя, Курсы.Название
FROM Студенты
INNER JOIN Курсы ON Студенты.КурсID = Курсы.ID;

Результат выполнения

Имя | Название
Иван | Математика
Мария | Физика

LEFT JOIN

LEFT JOIN возвращает все строки из левой таблицы и совпадающие строки из правой таблицы. Рассмотрим пример соединения таблиц «Студенты» и «Курсы» с использованием LEFT JOIN:

SELECT Студенты.Имя, Курсы.Название
FROM Студенты
LEFT JOIN Курсы ON Студенты.КурсID = Курсы.ID;

Результат выполнения

Имя | Название
Иван | Математика
Мария | Физика
Петр | NULL

RIGHT JOIN

RIGHT JOIN возвращает все строки из правой таблицы и совпадающие строки из левой таблицы. Рассмотрим пример соединения таблиц «Студенты» и «Курсы» с использованием RIGHT JOIN:

SELECT Студенты.Имя, Курсы.Название
FROM Студенты
RIGHT JOIN Курсы ON Студенты.КурсID = Курсы.ID;

Результат выполнения

Имя | Название
Иван | Математика
Мария | Физика
NULL | Химия

FULL JOIN

FULL JOIN возвращает все строки, когда есть совпадение в одной из таблиц. Рассмотрим пример соединения таблиц «Студенты» и «Курсы» с использованием FULL JOIN:

SELECT Студенты.Имя, Курсы.Название
FROM Студенты
FULL JOIN Курсы ON Студенты.КурсID = Курсы.ID;

Результат выполнения

Имя | Название
Иван | Математика
Мария | Физика
Петр | NULL
NULL | Химия

Использование соединений для выборки данных из нескольких таблиц

Соединения позволяют выполнять сложные запросы, которые извлекают данные из нескольких таблиц. Рассмотрим пример соединения таблиц «Заказы» и «Клиенты» для выборки информации о заказах и клиентах:

SELECT Клиенты.Имя, Заказы.Дата, Заказы.Сумма
FROM Заказы
INNER JOIN Клиенты ON Заказы.КлиентID = Клиенты.ID;

Результат выполнения

Имя | Дата | Сумма
Иван | 2024-01-10 | 100.00
Мария | 2024-01-11 | 150.00

Упражнения

Упражнение 1: Соединение таблиц с использованием INNER JOIN

Выполните соединение таблиц «Студенты» и «Курсы» для выборки имен студентов и названий курсов, на которых они учатся.

Решение:

SELECT Студенты.Имя, Курсы.Название
FROM Студенты
INNER JOIN Курсы ON Студенты.КурсID = Курсы.ID;

Объяснение: Мы использовали команду INNER JOIN для соединения таблиц «Студенты» и «Курсы» по столбцу «КурсID».

Упражнение 2: Соединение таблиц с использованием LEFT JOIN

Выполните соединение таблиц «Студенты» и «Курсы» для выборки всех студентов и названий курсов, на которых они учатся, включая тех студентов, которые не учатся на курсе.

Решение:

SELECT Студенты.Имя, Курсы.Название
FROM Студенты
LEFT JOIN Курсы ON Студенты.КурсID = Курсы.ID;

Объяснение: Мы использовали команду LEFT JOIN для соединения таблиц «Студенты» и «Курсы» по столбцу «КурсID», чтобы выбрать всех студентов, включая тех, которые не учатся на курсе.

Упражнение 3: Соединение таблиц с использованием RIGHT JOIN

Выполните соединение таблиц «Студенты» и «Курсы» для выборки всех курсов и имен студентов, которые на них учатся, включая те курсы, на которых нет студентов.

Решение:

SELECT Студенты.Имя, Курсы.Название
FROM Студенты
RIGHT JOIN Курсы ON Студенты.КурсID = Курсы.ID;

Объяснение: Мы использовали команду RIGHT JOIN для соединения таблиц «Студенты» и «Курсы» по столбцу «КурсID», чтобы выбрать все курсы, включая те, на которых нет студентов.

Упражнение 4: Соединение таблиц с использованием FULL JOIN

Выполните соединение таблиц «Студенты» и «Курсы» для выборки всех студентов и всех курсов, независимо от того, учатся ли студенты на курсах или есть ли студенты на курсах.

Решение:

SELECT Студенты.Имя, Курсы.Название
FROM Студенты
FULL JOIN Курсы ON Студенты.КурсID = Курсы.ID;

Объяснение: Мы использовали команду FULL JOIN для соединения таблиц «Студенты» и «Курсы» по столбцу «КурсID», чтобы выбрать всех студентов и все курсы, независимо от их взаимосвязи.

Категория: SQL | Просмотров: 36 | Добавил: Admin | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: