[DataBase] Ch. 10 (스마트팩토리)

Kwaaaaan·2023년 3월 16일
2

DataBase(DB)

목록 보기
13/13
post-thumbnail

JOIN

테이블을 DB관리자가 원하는 형태로 보기 위해 두개 이상의 테이블을 묶어 하나의 테이블을 만들때 사용합니다.

SELECT 속성이름, ... FROM 테이블A, 테이블B WHERE 조인조건 AND 검색조건;
OR
SELECT 속성이름, ... FROM 테이블A INNER JOIN 테이블B ON 조인조건 WHERE 검색조건;

INNER JOIN

INNTER JOIN은 JOIN의 Defualt값으로 설정되어 있습니다.
SELECT 속성이름, ... FROM 테이블A INNER JOIN 테이블B ON 조인조건 WHERE 검색조건;
SELECT 속성이름, ... FROM 테이블A JOIN 테이블B ON 조인조건 WHERE 검색조건;
위 두 코드는 완벽하게 같은 매커니즘으로 작동합니다.

OUTTER JOIN

OUTER JOIN에는 LEFT OUTER JOIN, FULL OUTER JOIN, RIGHT OUTER JOIN 이 세가지의 경우로 나뉘어 집니다.

LEFT OUTHER JOIN


SELECT * FROM A a LEFT JOIN B b ON a.KEY = b.KEY

SELECT * FROM A a LEFT JOIN B b ON a.KEY = b.KEY WHERE b.KEY IS NULL

RIGHT OUTHER JOIN


SELECT * FROM A a RIGHT OUTER JOIN B b ON a.KEY = b.KEY

SELECT * FROM A a RIGHT OUTER JOIN B b ON a.KEY = b.KEY WHERE a.KEY IS NULL

FULL OUTHER JOIN


SELECT * FROM A a FULL OUTER JOIN B b ON a.KEY = b.KEY

SELECT * FROM A a FULL OUTER JOIN B b ON a.KEY = b.KEY WHERE a.KEY IS NULL OR b.KEY IS NULL

SELF JOIN

SELF JOIN은 스스로를 JOIN하여 조건을 찾아내는 방법입니다. 하나의 표에서 어떠한 조건만으로 필요한 데이터를 추출하기 위해 필요합니다. 이때, 하나의 표에서 데이터를 JOIN하기 위해서는 AS를 사용하여 표의 이름을 달리 표현해 주어야 가능합니다.
CREATE TABLE users( id INT PRIMARY KEY, name VARCHAR(10), superior_id INT ); 테이블 생성

INSERT INTO users VALUES ('1', 'happy', NULL), ('2', 'banana', 1), ('3', 'lucky', 2), ('4', 'orange', 2), ('5', 'apple', NULL); 데이터 추가

SELECT u1.id, u1.name AS '멘티', u2.name AS '멘토' FROM users AS u1 JOIN users AS u2 ON u1.superior_id = u2.id;

profile
스마트팩토리 개발자(를 꿈꾸며)

0개의 댓글