728x90
SMALL
- 이번 글에서는 JOIN과 표준 JOIN에 대한 내용을 다뤄보며 SQL 기본 챕터를 마무리하도록 하겠습니다.
데이터 간의 연결이 필요하다면, JOIN!
✅ JOIN이란?
- JOIN은 두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 SQL 연산입니다.
- 서로 관련 있는 데이터 항목들 사이의 관계를 기반으로 정보를 결합할 수 있습니다.
- 일반적으로 JOIN은 PK와 FK 값의 연관성에 의해 성립됩니다.
- JOIN에는 다양한 유형이 있으며, 각각의 사용법과 목적이 다릅니다.
✅ EQUI JOIN
- EQUI JOIN(동등 조인)은 두 테이블 간의 컬럼 값이 정확하게 일치할 때 컬럼을 결합하는 방법입니다.
- = 연산자만을 사용하여 JOIN 조건을 명시합니다. EQUI JOIN은 INNER JOIN의 일종으로, 두 테이블의 지정된 컬럼 사이에 동등 관계가 있을 때 아래와 같이 사용됩니다.
SELECT A.name, B.salary
FROM employees A, departments B
WHERE A.department_id = B.department_id;
✅NON EQUI JOIN
- NON EQUI JOIN은 두 테이블 간에 열 값이 정확히 일치하지 않아도 행을 결합할 수 있습니다.
- 이는 BETWEEN, >, <, >=, <= 등의 비교 연산자를 사용하여 조건을 명시할 때 사용됩니다.
- 대부분 NON EQUI JOIN을 수행할 수 있지만, 때로는 설계상의 이유로 수행이 불가능한 경우도 있습니다.
- 예를 들어, 특정 범위 내의 값을 찾거나, 두 값 사이의 관계를 비교할 때 유용합니다.
SELECT A.name, B.grade
FROM students A, test_scores B
WHERE A.score >= B.min_score AND A.score <= B.max_score;
✅OUTER JOIN
- OUTER JOIN은 한쪽 테이블에는 일치하는 항목이 있지만 다른 쪽 테이블에는 해당 항목이 없는 경우에도 행을 포함하도록 합니다.
- OUTER JOIN에는 LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN이 있습니다.
JOIN 쿼리의 표준, STANDARD JOIN!
✅ INNER JOIN
- INNER JOIN은 두 테이블 간의 교차점에 해당하는 데이터만을 반환합니다.
- 즉, 두 테이블 모두에서 일치하는 조건을 만족하는 행들을 결합하여 결과를 생성합니다.
- 가장 일반적으로 사용되는 JOIN 유형 중 하나로, 명시적으로 조건을 지정하여 관련된 데이터를 검색할 때 사용됩니다.
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
✅ OUTER JOIN
- OUTER JOIN은 앞서 설명했기에, OUTER JOIN 종류의 세부적인 사항에 대해서만 언급하겠습니다.
- LEFT OUTER JOIN: 왼쪽 테이블의 모든 행과 오른쪽 테이블에서 조건에 일치하는 행을 반환합니다. 오른쪽 테이블에 일치하는 행이 없는 경우, 결과에는 NULL 값이 포함됩니다.
- RIGHT OUTER JOIN: 오른쪽 테이블의 모든 행과 왼쪽 테이블에서 조건에 일치하는 행을 반환합니다. 왼쪽 테이블에 일치하는 행이 없는 경우, 결과에는 NULL 값이 포함됩니다.
- FULL OUTER JOIN: 왼쪽 테이블과 오른쪽 테이블 양쪽 모두에서 일치하는 행을 반환합니다. 어느 한 쪽에만 존재하는 행도 모두 결과에 포함되며, 일치하는 행이 없는 경우 NULL 값이 포함됩니다. 단, 중복값은 제거됩니다.
✅ NATURAL JOIN
- NATURAL JOIN은 두 테이블 간에 같은 이름을 가진 모든 열에 대해 암시적으로 JOIN 조건을 적용합니다.
- 공통 컬럼 앞에 OWNER 명을 붙이게 되면 에러가 발생할 수 있습니다.
- 테이블 간의 관계가 명확하고, 열 이름이 정확히 일치할 때 편리하게 사용할 수 있습니다. 또한, ON 절을 사용할 수 없습니다.
✅ CROSS JOIN
- CROSS JOIN은 두 테이블 간의 가능한 모든 조합을 반환합니다.
- 조인 조건을 명시하지 않으며, 첫 번째 테이블의 각 행이 두 번째 테이블의 각 행과 결합됩니다.
- 결과적으로 반환되는 행의 수는 첫 번째 테이블의 행 수와 두 번째 테이블의 행 수를 곱한 값과 같습니다.
- 별도의 JOIN 조건이 없는 경우, 두 테이블은 CROSS JOIN이 됩니다.
728x90
LIST
'자격증 > SQLD' 카테고리의 다른 글
SQL 활용 (1) (2) | 2024.02.27 |
---|---|
SQL 기본 (4) (1) | 2024.02.26 |
SQL 기본 (2) (0) | 2024.02.20 |
SQL 기본 (1) (0) | 2024.02.19 |
데이터 모델과 SQL (2) (0) | 2024.02.15 |