일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 네트워크
- 코스피
- SQL시험
- Heap
- 주식
- 자료구조
- URP
- 디자인패턴
- SQLD
- 운영체제
- SQL
- TCP
- 통신
- SRP
- c#
- 픽셀 쉐이더
- 멀티스레드
- 정렬
- 버텍스 쉐이더
- vertex shader
- 배칭
- 렌더링파이프라인
- unity
- HDRP
- 유니티
- 코스닥
- 쉐이더
- 프로세스
- 스레드
- 유니티 최적화
- Today
- Total
Let's Girin!
[SQLD] JOIN 본문
1. JOIN
두 개 이상의 테이블을 연결 또는 결합하여 데이터를 출력하는 것을 JOIN이라고 한다.
2.EQUI JOIN
SQL에서 두 테이블 간에 동등한 값에 기반하여 조인하는 방법이다. 즉, 두 테이블 간에 칼럼 값들이 서로 정확하게 일치하는 경우에 사용된다.
N개의 테이블 조인에서 조인조건은 대상 테이블 개수에서 하나를 뺀 N-1개 이상 필요하다.
2_1. INNER JOIN
두 테이블 간에 일치하는 행만을 결과로 반환.
2_1.1 Where절 사용
▷ where절에 Join 조건을 넣는다.
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees, departments
WHERE employess.department_id = departments.department_id;
2_1.2 Inner Join 사용
▷ On 절에 Join 조건을 넣는다.
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id;
2_2. NATURAL JOIN
두 테이블 간에 동일한 이름을 가진 컬럼을 기반으로 조인하는 방법이다. 명시적으로 ON이나 USING절 없이 사용되며 자동으로 조인 조건을 생성한다.
SELECT * FROM table1 NATURAL JOIN table2;
3.NON EQUI JOIN
동등 연산자('=')가 아닌 다른 비교 연산자를 사용하여 두 테이블을 결합하는 조인 방법. 즉, 두 개의 테이블 간 칼럼 값들이 서로 정확하게 일치하지 않는 경우에 사용한다.
3_1. OUTER JOIN
일치하지 않는 행도 결과에 포함시키는 특징.
3_1.1 LEFT OUTER JOIN
왼쪽 테이블의 모든 행을 포함하며, 오른쪽 테이블과 일치하는 행이 있는 경우 해당 행을 결과에 포함한다. 일치하지 않는 경우, 오른쪽 테이블의 열은 NULL로 채워진다.
SELECT left_table.column1, left_table.column2, right_table.column3
FROM left_table
LEFT OUTER JOIN right_table ON left_table.matching_column = right_table.matching_column;
3_1.2 RIGHT OUTER JOIN
오른쪽 테이블의 모든 행을 결과에 포함하며, 왼쪽 테이블과 일치하는 행이 있는 경우 해당 행을 결과에 포함한다. 일치하지 않는 경우, 왼쪽 테이블의 열은 NULL로 채워진다.
SELECT left_table.column1, left_table.column2, right_table.column3
FROM left_table
RIGHT OUTER JOIN right_table ON left_table.matching_column = right_table.matching_column;
3_1.3 FULL OUTER JOIN
양쪽 테이블의 모든 행을 결과에 포함하며, 일치하는 행이 없는 경우에도 해당 쪽의 열을 NULL로 채운다. 공통된 부분을 제외하는 조인이다.
SELECT left_table.column1, left_table.column2, right_table.column3
FROM left_table
FULL OUTER JOIN right_table ON left_table.matching_column = right_table.matching_column;
4. CROSS JOIN
두 테이블 간의 모든 가능한 조합을 생성하는 조인방법이다. CROSS JOIN을 수행하면 결과의 행수가 증가되므로 주의하며 작은 크기의 테이블이나 특정 상황에서만 사용되어야 한다.
SELECT * FROM table1 CROSS JOIN table2;
'Database' 카테고리의 다른 글
[SQLD] 요약+기출문제 (0) | 2023.11.14 |
---|---|
[SQLD] 데이터 모델링의 이해 (1) | 2023.10.31 |