Неявное соединение против явного соединения в SQL
Предложение 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;
Выход: