[SQL] JOIN 연산

chae·2023년 11월 15일
0

DataBase

목록 보기
9/16
post-thumbnail

🎆 JOIN 연산

데이터베이스에서 두 개 이상의 테이블 간에 관계를 형성하여 데이터를 결합하는 연산
여러 테이블에 저장된 데이터를 단일 결과 집합으로 가져옴

🧶 INNER JOIN

두 테이블 간 공통된 값이 일치하는 행만 반환

SELECT *
FROM 테이블1
INNER JOIN 테이블2 ON 테이블1.공통열 = 테이블2.공통열;

-- customers 테이블과 orders 테이블을 고객 아이디를 기준으로 INNER JOIN
SELECT customers.customer_id, customers.customer_name, orders.order_id
FROM customers
INNER JOIN orders ON customers.customer_id = orders.customer_id;

🧶 OUTER JOIN

두 테이블 간에 연결된 행을 반환하고 일치하지 않는 행도 포함
LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN이 있음

🎍 LEFT OUTER JOIN(LEFT JOIN)

왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 반환
오른쪽 테이블에 일치하는 행이 없으면 NULL 값으로 채움

-- customers 테이블과 orders 테이블을 고객 아이디를 기준으로 LEFT JOIN
SELECT customers.customer_id, customers.customer_name, orders.order_id
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id;

🎍 RIGHT OUTER JOIN(RIGHT JOIN)

오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 반환
왼쪽 테이블에 일치하는 행이 없으면 NULL 값으로 채움

-- customers 테이블과 orders 테이블을 고객 아이디를 기준으로 RIGHT JOIN
SELECT customers.customer_id, customers.customer_name, orders.order_id
FROM customers
RIGHT JOIN orders ON customers.customer_id = orders.customer_id;

🎍 FULL OUTER JOIN(FULL JOIN)

양쪽 테이블의 모든 행을 반환하며, 일치하지 않는 행은 NULL 값으로 채움

-- customers 테이블과 orders 테이블을 고객 아이디를 기준으로 FULL JOIN
SELECT customers.customer_id, customers.customer_name, orders.order_id
FROM customers
FULL JOIN orders ON customers.customer_id = orders.customer_id;

🧶 CROSS JOIN

테이블 간의 모든 가능한 조합을 반환
조인 조건이 필요하지 않음

-- employees 테이블과 departments 테이블을 CROSS JOIN
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
CROSS JOIN departments;
profile
배움은 즐겁습니다.

0개의 댓글