Внешнее соединение SQL

Опубликовано: 28 Августа, 2022

В реляционной СУБД мы следуем принципам нормализации, что позволяет нам сворачивать большие таблицы в маленькие. Используя оператор select в Joins, мы можем вернуть большую таблицу обратно. Внешние соединения бывают следующих трех типов.

  1. Левое внешнее соединение
  2. Правое внешнее соединение
  3. Полное внешнее соединение

Создание базы данных: выполните следующую команду, чтобы создать базу данных.

Create database testdb;

Использование базы данных: выполните следующую команду, чтобы использовать базу данных.

use testdb;

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

CREATE TABLE Students (
   StudentID int,
   LastName varchar(255),
   FirstName varchar(255),
   Address varchar(255),
   City varchar(255)
);

Вставка строк в базу данных:

INSERT INTO students (
StudentID,
LastName,
FirstName,
Address,
City
)
VALUES
(
111, 
"James",
 "Johnson",
 "USA",
 california
);

Вывод базы данных:

Введите следующую команду, чтобы получить вывод.

SELECT  * FROM students;

Типы внешнего соединения:

1. Левое внешнее соединение. Операция левого соединения возвращает все записи из левой таблицы и соответствующие записи из правой таблицы. Для соответствующего элемента, не найденного в правой таблице, в этом случае представляется NULL.

Синтаксис:

SELECT column_name(s)
FROM table1
LEFT JOIN Table2 
ON Table1.Column_Name=table2.column_name;

2. Правое внешнее соединение. Операция правого соединения возвращает все записи из правой таблицы и соответствующие записи из левой таблицы. Для соответствующего элемента, не найденного в левой таблице, в этом случае представляется NULL.

Синтаксис:

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

3. Полное внешнее соединение. Ключевое слово полное внешнее соединение возвращает все записи при совпадении в левой или правой записях таблицы.

Syntax:
SELECT column_name
FROM table1
FULL OUTER JOIN table2
ON table1.columnName = table2.columnName
WHERE condition;

Пример :

Создание 1-го образца таблицы студентов.

CREATE TABLE students (
 id INTEGER,
 name TEXT NOT NULL,
 gender TEXT NOT NULL
);
-- insert some values
INSERT INTO students VALUES (1, "Ryan", "M");
INSERT INTO students VALUES (2, "Joanna", "F");
INSERT INTO students Values (3, "Moana", "F");

Создание 2-го образца таблицы колледжа.

CREATE TABLE college (
 id INTEGER,
 classTeacher TEXT NOT NULL,
 Strength TEXT NOT NULL
);
-- insert some values
INSERT INTO college VALUES (1, "Alpha", "50");
INSERT INTO college VALUES (2, "Romeo", "60");
INSERT INTO college Values (3, "Charlie", "55");

Выполнение внешнего соединения двух вышеуказанных таблиц.

ВЫБЕРИТЕ College.classTeacher, student.id

Из колледжа

ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ Колледж ON College.id=students.id

ЗАКАЗАТЬ College.classTeacher;

Вышеприведенный код выполнит полное внешнее соединение таблиц студентов и колледжей и вернет выходные данные, соответствующие идентификатору колледжа и идентификатору студентов. На выходе будет учитель класса из таблицы колледжа и идентификатор из таблицы студентов. Стол будет заказан классным руководителем со стола колледжа.

Классный руководитель Идентификатор
Альфа 1
Ромео 2
Чарли 3