DML에서 데이터를 검색할 때 JOIN을 사용해서 여러 테이블을 합쳐서 하나의 결과를 보여줄 수 있다.
<CROSS JOIN> = 카티션 프로덕트
SELECT * FROM 테이블1, 테이블2;
SELECT * FROM 테이블1 CROSS JOIN 테이블2;
<INNER JOIN> = 일반적인 JOIN
SELECT * FROM 테이블1, 테이블2 WHERE 테이블1.속성=테이블2.속성;
SELECT * FROM 테이블1 INNER JOIN 테이블2 ON 테이블1.속성=테이블2.속성;
SELECT * FROM 테이블1 JOIN 테이블2 USING 테이블1.속성=테이블2.속성; //윗줄 INNER 생략이 가능함.
SELECT * FROM 테이블1 NATURAL JOIN 테이블2;
<OUTER JOIN> 외부조인 = 조건에 해당하지 않는 컬럼값도 NULL을 대입하여 결과값에 포함한다.
LEFT OUTER JOIN
* 테이블2에 맞지 않는 테이블1 튜플에 NULL대입해서 출력
SELECT * FROM 테이블1 LEFT OUTER JOIN 테이블2 ON 테이블1.속성=테이블2.속성
SELECT * FROM 테이블 1 WHERE 테이블1.속성=테이블2.속성(+);
RIGHT OUTER JOIN
* 테이블1에 맞지 않는 테이블 2 튜플에 NULL 대입해서 출력
SELECT * FROM 테이블 1 RIGHT OUTER JOIN 테이블2 ON 테이블1.속성=테이블2.속성;
SELECT * FROM 테이블 1 WHERE 테이블1.속성(+)=테이블2.속성;
FULL OUTER JOIN = UNION과 같다.
* 양쪽 릴레이션 튜플 모두 출력
SELECT * FROM 테이블1 FULL OUTER JOIN 테이블2 ON 테이블1.속성 = 테이블2.속성
<SELF JOIN> 데이터가 한 테이블 안에 다 있을 때 사용.
SELETE * FROM 테이블1 AS A JOIN 테이블1 AS B ON A.속성 = B.속성;
'Programming > Certificate' 카테고리의 다른 글
정보처리기사 실기 SQL(5) - DCL (0) | 2019.04.07 |
---|---|
정보처리기사 실기 SQL(4) - DDL ALTER, DROP (0) | 2019.04.07 |
정보처리기사 실기 SQL(3) - DDL CREATE문 (0) | 2019.04.07 |
정보처리기사 실기 SQL(1) - DML (0) | 2019.04.07 |
정보처리기사 2019 1회 필기 후기 (0) | 2019.03.21 |