2023. 4. 20. 22:31ㆍProgramming
SQL join은 두 개 이상의 테이블에서 데이터를 가져와 결합하는 기능을 말합니다. join을 사용하면 테이블 간의 관계를 이해하고 데이터를 분석하고 쿼리할 수 있습니다.
- INNER JOIN INNER JOIN은 두 테이블 사이에서 공통된 값을 기준으로 매칭하여 결과를 반환합니다. 즉, 조인하는 두 테이블에서 조건에 일치하는 행만 반환합니다.
- LEFT JOIN LEFT JOIN은 왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블의 일치하는 행을 반환합니다. 일치하지 않는 경우 NULL 값을 반환합니다.
- RIGHT JOIN RIGHT JOIN은 LEFT JOIN과 반대로 오른쪽 테이블의 모든 행을 반환하고, 왼쪽 테이블에서 일치하는 행을 반환합니다. 일치하지 않는 경우 NULL 값을 반환합니다.
- FULL OUTER JOIN FULL OUTER JOIN은 두 테이블 중 어느 한쪽에라도 일치하는 행을 모두 반환합니다. 일치하지 않는 경우에는 NULL 값을 반환합니다.
- CROSS JOIN CROSS JOIN은 모든 행을 조합하여 반환합니다. 따라서 조인하는 두 테이블의 행 수를 곱한 값만큼의 결과가 반환됩니다.
데이터 베이스 예제로 추가 설명 하겠습니다.
Table 1: employees
1 | Alice | Sales |
2 | Bob | Engineering |
3 | Charlie | Sales |
4 | David | Marketing |
5 | Eve | Engineering |
Table 2: salaries
1 | 60000 |
2 | 80000 |
3 | 55000 |
4 | 75000 |
6 | 90000 |
위의 두 테이블에서, employees 테이블의 id 열과 salaries 테이블의 id 열이 일치한다는 가정 하에 SQL join을 수행해 보겠습니다.
1.INNER JOIN
INNER JOIN을 사용하면 두 테이블에서 공통된 값을 기준으로 매칭하여 결과를 반환합니다.
SELECT employees.name, salaries.salary
FROM employees
INNER JOIN salaries
ON employees.id = salaries.id;
위의 SQL 쿼리는 employees 테이블과 salaries 테이블에서 id 열이 일치하는 행만 선택하고, employees 테이블의 name 열과 salaries 테이블의 salary 열을 반환합니다.
Alice | 60000 |
Bob | 80000 |
Charlie | 55000 |
David | 75000 |
2.LEFT JOIN
LEFT JOIN을 사용하면 왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블에서 일치하는 행을 반환합니다. 일치하지 않는 경우에는 NULL 값을 반환합니다.
SELECT employees.name, salaries.salary
FROM employees
LEFT JOIN salaries
ON employees.id = salaries.id;
위의 SQL 쿼리는 employees 테이블의 모든 행을 선택하고, salaries 테이블에서 id 열과 일치하는 행이 있는 경우에는 그 행의 salary 값을 반환하고, 일치하는 행이 없는 경우에는 NULL 값을 반환합니다.
Alice | 60000 |
Bob | 80000 |
Charlie | 55000 |
David | 75000 |
Eve | NULL |
3. RIGHT JOIN
RIGHT JOIN을 사용하면 LEFT JOIN과 반대로 오른쪽 테이블의 모든 행을 반환하고, 왼쪽 테이블에서 일치하는 행을 반환합니다. 일치하지 않는 경우에는 NULL 값을 반환합니다.
SELECT employees.name, salaries.salary
FROM employees
RIGHT JOIN salaries
ON employees.id = salaries.id;
위의 SQL 쿼리는 salaries 테이블의 모든 행을 선택하고, employees 테이블에서 id 열과 일치하는 행이 있는 경우에는 그 행의 name 값을 반환하고, 일치하는 행이 없는 경우에는 NULL 값을 반환합니다.
Alice | 60000 |
Bob | 80000 |
Charlie | 55000 |
David | 75000 |
NULL | 90000 |
4. FULL OUTER JOIN
FULL OUTER JOIN을 사용하면 두 테이블에서 일치하는 값을 모두 반환하고, 일치하지 않는 경우에는 NULL 값을 반환합니다.
SELECT employees.name, salaries.salary
FROM employees
FULL OUTER JOIN salaries
ON employees.id = salaries.id;
위의 SQL 쿼리는 employees 테이블과 salaries 테이블에서 id 열이 일치하는 행을 선택하고, 둘 중 하나라도 일치하지 않는 경우에는 NULL 값을 반환합니다.
Alice | 60000 |
Bob | 80000 |
Charlie | 55000 |
David | 75000 |
Eve | NULL |
NULL | 90000 |
위의 예시에서는 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN을 사용하여 두 테이블을 조인하는 방법을 보여주었습니다.
'Programming' 카테고리의 다른 글
[해결방법] fatal: not a git repository (or any of the parent directories): .git (0) | 2023.08.22 |
---|---|
윈도우 재부팅 없이 환경변수 적용 (0) | 2022.12.04 |