1. 조인
JOIN이란 RDB에서 일반적을 많이 사용하며, 정규화를 통해 분리된 데이터 베이스에서 원하는 결과를 도출하기 위해 여러 테이블을 조합하는 것을 JOIN이라고 한다. JOIN을 통해 관련된 컬럼을 기준으로 행을 합쳐주는 연산을 할 수 있다.
2. 조인의 종류
1) INNER JOIN
INNER JOIN은 가장 많이 사용되는 조인으로 2개의 테이블을 합쳐 새로운을 만들고 이중 A의 기준값과 B의 기준값( 예를들어 A의 PK와 B의 FK)이 일치하는 것에 대해 결과를 도출하는 것이다.
2) OUTER JOIN
외부조인은 크게 3가지로 나눌 수 있다.
[1] LEFT OUTER ( A에 따라 B의 컬럼을 추가해 놓은 것 )
A테이블의 모든 데이터에 대해 B테이블과 매칭이 되는 레코드를 포함하는 조인이다. 이때 A와 매칭되는 값이 B에 없다면, 해당 컬럼은 NULL값으로 채운다.
[2] RIGHT OUTER (B에 따라 A의 컬럼을 추가해 놓은 것)
LEFT OUTER 조인과 반대로 B테이블과 매칭되는 레코드를 포함하는 조인으로 B와 매칭되는 값이 A에 없다면 해당컬럼은 NULL값으로 채운다.
[3] FULL OUTER ( LEFT OUTER JOIN + RIGHT OUTER JOIN)
LEFT OUTER 조인과 RIGHT OUTER 조인을 합쳐놓은 것이다.
3) SELF JOIN
같은 테이블끼리 조인하는 것이다. 예를 들면 관리자를 저장하는 사원 테이블이 있다고 가정하자.
이런식으로 사원의 관리자의 관리자를 알아내는데 사용할 수 있다.
4) ANTI JOIN
서브쿼리 내에 존재하지 않는 데이터만 추출하여 나타내는 쿼리이다.
예를 들어
SELECT * FROM TABLEA
WHERE SOME CONDITION
AND NOT EXISTS( SELECT * FROM ~~)
즉, NOT EXISTS 뒤에 나오는 서브쿼리의 결과에 없는 값 중에 CONDITION조건을 만족하는 결과만 추출하는 쿼리이다.
5) SEMI JOIN
안티 조인과 반대로 서브쿼리에 존재하는 데이터만 추출하여 나타내는 쿼리이다.
예를 들어
SELECT * FROM TABLEA
WHERE SOME CONDITION
AND EXISTS( SELECT * FROM ~~)
즉, EXISTS 뒤에 나오는 서브쿼리의 결과에 있는 값 중에 CONDITION조건을 만족하는 결과만 추출하는 쿼리이다.
'ComputerScience > Database' 카테고리의 다른 글
[Database] InnoDB (0) | 2021.06.22 |
---|---|
[DataBase] 7. ORM (0) | 2021.06.04 |
[DataBase] 5. 파티셔닝/ 샤딩 (0) | 2021.06.03 |
[DataBase] 4. 정규화 (0) | 2021.06.03 |
[DataBase] 3. 스키마 (0) | 2021.06.03 |
댓글