일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- papago
- F-Lab
- Scheduler
- spring
- docker
- ngrinder
- ncloud
- AssertJ
- mybatis
- object storage
- 회고
- NCP
- Enum
- OrientalUnity
- 에프랩
- Naver Cloud
- Java
- DBDocs
- React
- Naver Cloud Platform
- 네이버 클라우드
- Database
- navercloud
- spring boot
- 네이버클라우드
- junit
- NaverCloudPlatform
- Thymeleaf
- NooBLoL
- Pinpoint
- Today
- Total
DevJong12
Join 본문
개요
회사 인터뷰면접보러가서 조인이 갑자기 혼동됨. 정리를 하고자 작성하게됨.... 나란놈 빡머가리다...
Join이란???
- 2개 이상의 테이블을 연결해 데이터를 검색하는 방법임.
- 보통 공통된 값인 PK 혹은 FK값을 이용하여 조인을 주로 함
- 조인은 조인 연산자에 따라서 혹은 From절의 조인 형태에 따라서 구별한다
Join의 종류
- INNER JOIN (내부조인)
- OUTER JOIN (외부조인)
- SELF JOIN (셀프 조인)
- ANTI JOIN (안티 조인)
- SEMI JOIN (세미 조인)
INNER JOIN
이너조인을 세부적으로 나누면 이렇게 총 4가지정도가 나온다
- CROSS JOIN - CARTESIN JOIN (교차조인)
- EQUI JOIN (등가 / 동등 / 동일 조인)
- NON EQUI JOIN (비등가 조인)
- NATURAL JOIN (자연 조인)
1. INNER JOIN
내부 조인은 가장 많이 사용되는 조인 구문중에 하나이다. 내부조인은 조인 조건문에 따라 2개 이상의 테이블의 컬럼을 합하는것, 교차조인을 한 결과물에 조인 조건문을 충족시키는 레코드를 추출받아옴 아래의 사진은 결과물이 나오는 방식
보통 외부키나 기본키, 유니크키가 되어있는걸 매개채로 잡는 경우가 많음.
뭐가되었든 데이터를 추출할수 있는 기준키가 있으면 됨.
2. CROSS JOIN - CARTESIN JOIN (교차조인)
교차조인은 두개이상의 테이블을 곱집합을 한 결과물.
아래와 같이 N개의 테이블의 모든 결과물이 다나오는 표현
3. EQUI JOIN(등가조인)
등가조인은 동등(=)를 사용하는 조인으로 1번의 INNER JOIN을 동일 조인이라함
4. NON EQUI JOIN (비등가 조인)
비등가 조인은 동등비교(=)를 하지 않는 조인으로 조건문이 크거나 작거나 같이 않은 비교등을 사용할 경우에 비등가 조인이라고 함. 아래와 같은 방식으로
SELECT *
FROM employees, departments
WHERE employees.emp_no between 10003 and 10004;
5. NATURAL JOIN (자연조인)
자연 조인은 동등 조인의 한 유형으로 두 테이블의 컬럼며이 같은 기준으로 조인 조건문이 암시적으로 일어나는 내부 조인 (??) (같은 컬럼은 합치고 뽑는 방식인것 같다) dept_no가 한번만 나오는거봐선)
SELECT *
FROM employees NATURAL JOIN dept_emp;
OUTER JOIN
내부 조인의 경우에는 공통 컬럼명을 기반으로 결과 집합을 생성한다, 반면에 외부 조인은 조건문에 만족하지 않는 행도 표시를 해주는 조인이다.
조인을 했을 때 한쪽의 테이블에 데이터가 없어도 조인 결과에 포함시키는 조인, 외부조인은 아래와 같이 3가지 종류가 있다.
- FULL OUTER JOIN (완전 외부 조인)
- LEFT OUTER JOIN
- RIGHT OUTER JOIN
1. LEFT OUTER JOIN (왼쪽 외부 조인)
왼쪽 외부 조인은 아래의 사진을 기준으로 테이블A의 모든 데이터가 테이블B와 매칭이 되는 레코드를 포함하는 조인으로 A의 데이터는 쿼리실행시 모두다 출력이되며 B의 테이블에 매칭이되는 데이터가 있으면 출력을 하며 없으면 NULL로 출력이 된다.
2. RIGHT OUTER JOIN (오른쪽 외부 조인)
LEFT OUTER JOIN 과는 반대라보면 된다.
3. FULL OUTER JOIN (완전 외부 조인)
LEFT, RIGHT의 경우에는 A혹은 B의 데이터가 모두다 나왔다면 FULL OUTER는 모든 데이터가 다출력이됨 A와 매칭되는 B가 전부 출력이되며 없으면 NULL로 또 그러면서 B에 데이터가 있으나 A에 없어도 전부 출력된다.
SELF JOIN (셀프 조인)
셀프 조인은 자기자신과 조인하는 조인임
ANTI JOIN (안티 조인)
안티조인은 서브쿼리 내에서 존재하지 '않는' 데이터만 추출하여 메인쿼리에서 추출하는 조인
SEMI JOIN (세미 조인)
세미조인은 안티조인과는 반대로 서브쿼리 내에서 존재하는 데이터 '만을' 가지고 메인 쿼리에서 추출하는 방식
참고한 포스트 : advenoh.tistory.com/23
'DB' 카테고리의 다른 글
[Mac]MariaDb 설치 (0) | 2021.09.11 |
---|