Неявное соединение против явного соединения в SQL

Опубликовано: 1 Сентября, 2022

Предложение JOIN используется для объединения строк из двух или более таблиц на основе отношения между ними. Существуют две различные формы синтаксиса для выполнения операции JOIN:

  • Явное присоединение
  • Неявное соединение

Шаг 1: Создание базы данных

Используйте приведенный ниже оператор SQL для создания базы данных с именем geeks:

CREATE DATABASE geeks;

Шаг 2: Использование базы данных

Используйте приведенный ниже оператор SQL, чтобы переключить контекст базы данных на гиков:

USE geeks;

Шаг 3: Создание таблиц

Используйте приведенный ниже оператор SQL, чтобы создать таблицу с именем student:

CREATE TABLE student(
  ROLL_NO INT PRIMARY KEY,
  NAME VARCHAR(25),
  AGE INT);

Используйте приведенный ниже оператор SQL, чтобы создать таблицу с именем course:

CREATE TABLE course(
  COURSE_ID INT,
  ROLL_NO INT);

Шаг 4: Добавление данных в таблицы

Используйте приведенный ниже оператор SQL, чтобы добавить данные в таблицу учеников:

INSERT INTO student 
VALUES 
(1, "Anjali", 20), 
(2, "Rachna", 18), 
(3, "Shubham", 21), 
(4, "Harsh", 25), 
(5, "Shivam", 18), 
(6, "Harshit", 20);

Используйте приведенный ниже оператор SQL, чтобы добавить данные в таблицу курса:

INSERT INTO course 
VALUES 
(1, 1),
(2, 2),
(2, 3),
(5, 4),
(3, 5);

Шаг 5: Ученический стол

Используйте приведенный ниже оператор SQL для просмотра содержимого таблицы учащихся:

SELECT * FROM student;

Таблица курса:

Используйте приведенный ниже оператор SQL для просмотра содержимого таблицы курса:

SELECT * FROM course;

Шаг 6: Явное соединение

В этой нотации ключевое слово ON используется для указания предикатов для соединения, а ключевое слово JOIN — для указания таблиц для соединения. Соединение может быть любого типа, т.е. ВНУТРЕННЕЕ СОЕДИНЕНИЕ, ЛЕВОЕ СОЕДИНЕНИЕ, ПРАВОЕ СОЕДИНЕНИЕ или ПОЛНОЕ СОЕДИНЕНИЕ. Он легче для понимания и менее подвержен ошибкам.

Синтаксис:

SELECT column_names
FROM table1
JOIN table2
ON table1.column_name = table2.column_name

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

Запрос:

SELECT COURSE_ID, NAME, AGE 
FROM student
JOIN course
ON student.ROLL_NO = course.ROLL_NO;

Выход:

Шаг 7: Неявное соединение

Эта нотация просто перечисляет таблицы для объединения (в предложении FROM оператора SELECT), используя запятые для их разделения и предложение WHERE, которое применяется к предикатам соединения. Он выполняет ПЕРЕКРЕСТНОЕ СОЕДИНЕНИЕ. Это трудно понять и более склонны к ошибкам.

Синтаксис:

SELECT column_names
FROM table1, table2
WHERE table1.column_name = table2.column_name

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

Запрос:

SELECT COURSE_ID, NAME, AGE 
FROM student, course
WHERE student.ROLL_NO = course.ROLL_NO;

Выход: