조인(Join)
1. EQUI(등가) JOIN (교집합)
- 가장 기본으로 교집합을 만드는 것
- 공통 칼럼을 이용하여 조인한다.
- '='를 사용해서 두개의 테이블 연결
SELECT *
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO -- '='를 사용해서 조인
- 조건을 추가하거나 정렬할 수 있다.
2. INNER JOIN
- ON문을 활용해 테이블을 조인
SELECT *
FROM EMP E
INNER JOIN DEPT D
ON E.DEPTNO = D.DEPTNO
3. INTERSECT 연산
- 두개의 테이블에서 교집합을 조회
- 공통된 값을 조회
SELECT DEPTNO FROM EMP
INTERSECT -- EMP와 DEPT 테이블에서 교집합을 조회해주는 연산
SELECT DEPTNO FROM DEPT
4. Non-EQUI(비등가) JOIN
- '='를 사용하지 않고 '>', '<', '>=', '<='등을 사용
- 정확하게 일치하지 않는 것을 조인
5. OUTER JOIN
- 두개의 테이블간 공통된 내용을 조회하고 한쪽 테이블에 있는 데이터도 포함시켜 조회
- FULL OUTER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN이 각각 존재
- 왼쪽 테이블에 있는 행도 포함하면 LEFT OUTER JOIN, 오른쪽 테이블에 있는 행도 포함하면 RIGHT OUTER
- ORACLE DB에서는 OUTER JOIN을 할때 '(+)'를 사용할 수 있다
SELECT *
FROM EMP E, DEPT D
WHERE E.DEPTNO (+)= D.DEPTNO
6. CROSS JOIN
- 조인 조건구 없이 2개의 테이블을 하나로 조인
- 조인구가 없기에 카테시안 곱이 발생
▷ 합집합과 차집합 구현
1. UNION
- 두개의 테이블을 하나로 만드는 연산
- 정렬을 발생
- 중복된 데이터를 제거
2. UNION ALL
- 중복을 제거하거나 정렬을 유발하지 않는다
3. MINUS
- 두개의 테이블에서 차집합을 조회
- MS-SQL에서는 EXCEPT로 사용
▷ 계층형 조회(Connect by)
- 트리 형태의 구조로 위에서 아래로 탐색하면서 조회
- START WITH구는 시작 조건을 의미, CONNECT BY PRIOR은 조인 조건
| 키워드 | 내용 |
| LEVEL | 깊이를 의미, 최상위 레벨은 1 |
| CONNECT_BY_ROOT | 최상위 값을 표시 |
| CONNECT_BY_ISLEAF | 최하위 값을 표시 |
| SYS_CONNECT_BY_PATH | 전개 경로를 표시 |
| NOCYCLE | 발생지점까지만 전개 |
| CONNECT_BY_ISCYCLE | 순환구조 발생 지점을 표시 |
'기타 > SQLD 자격증' 카테고리의 다른 글
| 13. 윈도우 함수 (SQLD 자격증 공부) (0) | 2022.02.21 |
|---|---|
| 12. 서브쿼리와 그룹함수(SQLD 자격증 공부) (0) | 2022.02.14 |
| 10. SQL 기본3 (SQLD 자격증 공부) (0) | 2022.02.10 |
| 9. SQL 내장형 함수 (SQLD 자격증 공부) (0) | 2022.02.10 |
| 8. SQL WHERE문 (SQLD 자격증 공부) (0) | 2022.02.09 |