JOIN : 두 개 이상의 테이블을 연결하여 데이터를 조회
데이터베이스는 일반적으로 정규화를 통해 여러 테이블로 분리되므로, 데이터를 효과적으로 활용하기 위해서는 JOIN을 사용하여 테이블 간의 관계를 결합해야 한다.
[대표적인 SQL JOIN의 5가지 종류]
1. INNER JOIN
두 테이블에서 공통된 값이 있는 행만 반환한다. 일치하지 않는 데이터는 결과에서 제외된다.
(사용 예제)
SELECT A.id, A.name, B.order_id
FROM Customers A
INNER JOIN Orders B ON A.id = B.customer_id;
2. LEFT JOIN (LEFT OUTER JOIN)
왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블의 일치하는 데이터가 없으면 NULL을 반환한다.
(사용 예제)
SELECT A.id, A.name, B.order_id
FROM Customers A
LEFT JOIN Orders B ON A.id = B.customer_id;
3. RIGHT JOIN (RIGHT OUTER JOIN)
오른쪽 테이블의 모든 행을 반환하고, 왼쪽 테이블의 일치하는 데이터가 없으면 NULL을 반환한다.
(사용 예제)
SELECT A.id, A.name, B.order_id
FROM Customers A
RIGHT JOIN Orders B ON A.id = B.customer_id;
4. FULL OUTER JOIN
두 테이블의 모든 행을 반환하며, 일치하는 데이터가 없으면 NULL을 포함한다.
(일부 데이터베이스에서는 FULL OUTER JOIN을 지원하지 않을 수 있다)
(사용 예제)
SELECT A.id, A.name, B.order_id
FROM Customers A
FULL OUTER JOIN Orders B ON A.id = B.customer_id;
5. CROSS JOIN
두 테이블의 모든 행의 조합(카테시안 곱)을 반환한다.
ON 조건이 없으며, 두 테이블 간의 모든 가능한 조합이 생성된다.
(사용 예제)
SELECT A.name, B.product_name
FROM Customers A
CROSS JOIN Products B;
[JOIN 최적화 전략]
- 인덱스(Index) 사용: 조인 조건에 사용되는 컬럼에 인덱스를 설정하면 성능이 향상된다
- 필요한 컬럼만 조회: SELECT * 대신 특정 컬럼을 지정하여 불필요한 데이터 로드를 줄인다
- 적절한 조인 방식 선택: 데이터 구조와 조회 목적에 맞는 JOIN을 선택하면 성능을 최적화할 수 있다
SQL JOIN은 RDB에서 여러 테이블을 결합하여 유용한 데이터를 추출하는 중요한 기능이다. 각 JOIN의 특성을 이해하고, 데이터의 구조와 조회 목적에 맞게 적절한 조인을 선택하는 것이 중요하다. 이를 통해 데이터의 활용도를 높이고 효율적인 쿼리 성능을 유지할 수 있다.
'DBMS > 데이터베이스' 카테고리의 다른 글
[데이터베이스] SQL 연습문제 (0) | 2025.02.06 |
---|---|
[데이터베이스] 트랜잭션 개념과 관리 방안 수립 (0) | 2025.02.06 |
[데이터베이스] 대표적인 데이터 모델링 기법 4가지 (0) | 2025.02.06 |
[데이터베이스] 표준화 명세서와 정규화 과정 (0) | 2025.02.05 |
[데이터베이스] 빅데이터(Big Data) (2) | 2024.07.03 |