새발블로그

[SQL] SQL 심화 명령어 본문

Server/DB

[SQL] SQL 심화 명령어

EUG 2025. 6. 25. 16:18

1. INNER JOIN (내부 조인)

  • 양쪽 테이블에서 조건에 맞는 행만 조회
  • 가장 많이 사용하는 조인 방식
SELECT t1.컬럼, t2.컬럼
FROM 테이블1 t1
INNER JOIN 테이블2 t2
ON t1.컬럼 = t2.컬럼;

2. NATURAL JOIN (자연 조인)

  • 공통된 컬럼 이름으로 자동 조인
  • ON 조건이 필요 없음
SELECT *
FROM 테이블1
NATURAL JOIN 테이블2;

  • 위험: 조인 기준을 명시하지 않아서, 컬럼명 충돌이나 예기치 않은 결과 발생 가능

3. JOIN ... USING(컬럼)

  • 공통 컬럼명을 지정해서 조인
  • ON보다 간단함
SELECT *
FROM 테이블1
JOIN 테이블2
USING (공통컬럼);

  • 내부적으로 ON 테이블1.공통컬럼 = 테이블2.공통컬럼 과 같음

4. OUTER JOIN (외부 조인)

유형 설명
LEFT OUTER JOIN 왼쪽 테이블의 모든 행 + 오른쪽에서 조건 만족하는 행
RIGHT OUTER JOIN 오른쪽 테이블의 모든 행 + 왼쪽에서 조건 만족하는 행
FULL OUTER JOIN 양쪽 테이블의 모든 행 (조건 불일치 시 NULL)

LEFT OUTER JOIN 예시

SELECT t1.컬럼, t2.컬럼
FROM 테이블1 t1
LEFT OUTER JOIN 테이블2 t2
ON t1.컬럼 = t2.컬럼;

FULL OUTER JOIN 예시

  • 일부 DB (MySQL 등)는 FULL OUTER JOIN 미지원 → UNION으로 우회
-- FULL OUTER JOIN (지원하는 DB 기준)
SELECT t1.컬럼, t2.컬럼
FROM 테이블1 t1
FULL OUTER JOIN 테이블2 t2
ON t1.컬럼 = t2.컬럼;

-- MySQL 대체 방법
SELECT t1.컬럼, t2.컬럼
FROM 테이블1 t1
LEFT JOIN 테이블2 t2 ON t1.컬럼 = t2.컬럼
UNION
SELECT t1.컬럼, t2.컬럼
FROM 테이블1 t1
RIGHT JOIN 테이블2 t2 ON t1.컬럼 = t2.컬럼;

'Server > DB' 카테고리의 다른 글

[DB] MongoDB  (0) 2025.06.25
[DB] 인덱스 , 쿼리 최적화, 트랜잭션  (0) 2025.06.25
[SQL] 테이블, 뷰  (1) 2025.06.25
[SQL] SQL 기본 명령어  (0) 2025.06.25
DBMS 개념  (0) 2025.06.25