요약
SQL INNER JOIN은 두 개 이상의 테이블을 연결하여 필요한 데이터를 조회하는 가장 기본적인 JOIN 문법입니다. SQLD 시험에서는 거의 매회 출제될 정도로 중요하며 실무에서도 가장 많이 사용되는 SQL 기술 중 하나입니다. 이번 글에서는 SQL INNER JOIN의 개념부터 작성 방법, 실행 원리, 실전 예제까지 자세히 알아보겠습니다.
SQL INNER JOIN이란?
SQL INNER JOIN은 두 개 이상의 테이블에서 공통으로 존재하는 데이터를 연결하여 조회하는 SQL 문법입니다.
실제 데이터베이스는 하나의 테이블에 모든 정보를 저장하지 않습니다.
예를 들어 직원 정보는 EMP 테이블에 저장하고 부서 정보는 DEPT 테이블에 저장하는 방식으로 관리합니다.
따라서 직원 이름과 부서명을 함께 조회하려면 두 테이블을 연결해야 합니다.
이때 사용하는 문법이 바로 SQL INNER JOIN입니다.
SQL INNER JOIN은 SQLD 시험과 실무에서 가장 많이 사용하는 JOIN 유형입니다. 더 많은 정보를 확인하고 SQL JOIN의 기본 개념을 익혀보세요.
왜 SQL INNER JOIN이 필요한가?
다음과 같은 두 개의 테이블이 있다고 가정해보겠습니다.
EMP 테이블
| 사원번호 | 이름 | 부서번호 |
|---|---|---|
| 7369 | SMITH | 20 |
| 7499 | ALLEN | 30 |
| 7521 | WARD | 30 |
DEPT 테이블
| 부서번호 | 부서명 |
|---|---|
| 10 | ACCOUNTING |
| 20 | RESEARCH |
| 30 | SALES |
직원 이름과 부서명을 함께 조회하고 싶다면 SQL INNER JOIN이 필요합니다.
SQL INNER JOIN 없이 데이터를 조회하면 두 테이블의 정보를 함께 볼 수 없습니다.
더 많은 정보를 확인하고 관계형 데이터베이스 구조를 이해해보세요.
SQL INNER JOIN 기본 문법
SQL INNER JOIN의 기본 문법은 다음과 같습니다.
SELECT 컬럼명
FROM 테이블1
INNER JOIN 테이블2
ON 연결조건;
실제 예제를 살펴보겠습니다.
SELECT E.ENAME,
D.DNAME
FROM EMP E
INNER JOIN DEPT D
ON E.DEPTNO = D.DEPTNO;
위 SQL INNER JOIN은 직원 이름과 부서명을 함께 조회합니다.
ON 절은 두 테이블을 연결하는 기준을 지정하는 역할을 합니다.
SQL INNER JOIN을 사용할 때 가장 중요한 부분이 바로 ON 조건입니다. 더 많은 정보를 확인하고 JOIN 조건 작성 방법을 익혀보세요.
SQL INNER JOIN 실행 결과
위 SQL INNER JOIN을 실행하면 다음과 같은 결과가 조회됩니다.
| 이름 | 부서명 |
|---|---|
| SMITH | RESEARCH |
| ALLEN | SALES |
| WARD | SALES |
EMP 테이블의 부서번호와 DEPT 테이블의 부서번호가 일치하는 데이터만 조회됩니다.
즉 SQL INNER JOIN은 공통된 데이터만 반환하는 특징을 가지고 있습니다.
더 많은 정보를 확인하고 SQL INNER JOIN 동작 원리를 이해해보세요.
SQL INNER JOIN 동작 원리
SQL INNER JOIN은 다음 순서로 동작합니다.
- 첫 번째 테이블 조회
- 두 번째 테이블 조회
- ON 조건 비교
- 조건이 일치하는 데이터만 반환
예를 들어
EMP.DEPTNO = 20
DEPT.DEPTNO = 20
이면 결과에 포함됩니다.
반면
EMP.DEPTNO = 20
DEPT.DEPTNO = 30
이면 결과에서 제외됩니다.
SQL INNER JOIN은 공통 데이터만 연결한다는 점을 기억하면 이해가 쉽습니다. 더 많은 정보를 확인하고 JOIN 동작 방식을 익혀보세요.
테이블 별칭(Alias) 사용하기
실무에서는 SQL INNER JOIN과 함께 별칭을 자주 사용합니다.
SELECT E.ENAME,
D.DNAME
FROM EMP E
INNER JOIN DEPT D
ON E.DEPTNO = D.DEPTNO;
여기서
- E = EMP
- D = DEPT
를 의미합니다.
별칭을 사용하면 SQL 문이 짧아지고 가독성이 좋아집니다.
SQLD 시험에서도 별칭을 사용하는 JOIN 문제가 자주 출제됩니다. 더 많은 정보를 확인하고 SQL 작성 습관을 개선해보세요.
SQL INNER JOIN과 WHERE 절 함께 사용하기
SQL INNER JOIN은 WHERE 절과 함께 사용하는 경우가 많습니다.
예를 들어 SALES 부서 직원만 조회해보겠습니다.
SELECT E.ENAME,
D.DNAME
FROM EMP E
INNER JOIN DEPT D
ON E.DEPTNO = D.DEPTNO
WHERE D.DNAME = 'SALES';
결과
| 이름 | 부서명 |
|---|---|
| ALLEN | SALES |
| WARD | SALES |
실무에서는 JOIN 후 원하는 데이터만 필터링하는 경우가 많습니다.
더 많은 정보를 확인하고 SQL 활용 능력을 높여보세요.
SQL INNER JOIN과 ANSI 표준 문법
현재 가장 많이 사용하는 방식은 ANSI JOIN 문법입니다.
SELECT *
FROM EMP E
INNER JOIN DEPT D
ON E.DEPTNO = D.DEPTNO;
하지만 오래된 Oracle 문법에서는 다음과 같이 작성하기도 했습니다.
SELECT *
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO;
SQLD 시험에서는 두 문법 모두 출제될 수 있습니다.
특히 실행 결과가 동일한지 묻는 문제가 자주 등장합니다.
더 많은 정보를 확인하고 SQLD 시험 대비를 시작해보세요.
SQL INNER JOIN 사용 시 자주 하는 실수
초보자가 SQL INNER JOIN을 사용할 때 가장 많이 하는 실수는 다음과 같습니다.
ON 조건 누락
SELECT *
FROM EMP
INNER JOIN DEPT;
이 경우 오류가 발생합니다.
잘못된 연결 조건
ON EMP.EMPNO = DEPT.DEPTNO
처럼 서로 관련 없는 컬럼을 연결하면 잘못된 결과가 조회됩니다.
컬럼명 중복 문제
JOIN 시 동일한 컬럼명이 존재할 경우 반드시 테이블명을 함께 작성하는 것이 좋습니다.
더 많은 정보를 확인하고 SQL 오류를 예방하는 방법을 알아보세요.
SQLD 시험에서 INNER JOIN이 중요한 이유
SQLD 시험에서는 SQL INNER JOIN 문제가 매우 높은 비중으로 출제됩니다.
특히 다음 내용은 반드시 이해해야 합니다.
| 출제 포인트 | 중요도 |
|---|---|
| INNER JOIN 기본 개념 | 매우 높음 |
| ON 조건 | 매우 높음 |
| ANSI JOIN 문법 | 매우 높음 |
| Oracle 구문 | 높음 |
| WHERE 조합 | 높음 |
| 실행 결과 예측 | 매우 높음 |
실제로 SQLD 기출문제를 보면 SQL INNER JOIN 관련 문제가 거의 매회 등장합니다.
더 많은 정보를 확인하고 SQLD 핵심 개념을 정리해보세요.
자주 묻는 질문(FAQ)
SQL INNER JOIN과 OUTER JOIN의 차이는 무엇인가요?
SQL INNER JOIN은 공통 데이터만 조회하고 OUTER JOIN은 일치하지 않는 데이터도 함께 조회합니다. 더 많은 정보를 확인하고 JOIN 종류를 비교해보세요.
SQL INNER JOIN은 실무에서 많이 사용하나요?
네. SQL INNER JOIN은 가장 많이 사용하는 JOIN 방식입니다. 더 많은 정보를 확인하고 실무 SQL 예제를 살펴보세요.
SQLD 시험에 INNER JOIN 문제가 많이 나오나요?
네. SQLD 시험의 핵심 출제 영역 중 하나입니다. 더 많은 정보를 확인하고 SQLD 기출문제를 분석해보세요.
마무리
SQL INNER JOIN은 여러 테이블의 데이터를 연결하는 가장 기본적이고 중요한 SQL 문법입니다. SQL INNER JOIN을 이해하면 OUTER JOIN, SELF JOIN, 서브쿼리 같은 고급 SQL 개념도 훨씬 쉽게 학습할 수 있습니다. SQLD 시험을 준비하거나 데이터 분석을 공부하는 분이라면 SQL INNER JOIN을 충분히 연습하고 직접 실행해보는 것을 추천합니다. 더 많은 정보를 확인하고 다음 단계인 SQL OUTER JOIN도 함께 학습해보세요.
