Внешнее соединение SQL
В реляционной СУБД мы следуем принципам нормализации, что позволяет нам сворачивать большие таблицы в маленькие. Используя оператор select в Joins, мы можем вернуть большую таблицу обратно. Внешние соединения бывают следующих трех типов.
- Левое внешнее соединение
- Правое внешнее соединение
- Полное внешнее соединение
Создание базы данных: выполните следующую команду, чтобы создать базу данных.
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 |