`INNER JOIN`은 SQL에서 두 테이블 간의 교집합을 반환하는 조인 유형입니다. 두 테이블에서 지정된 조건에 맞는 데이터만을 선택하여 결합된 결과를 제공합니다. `INNER JOIN`은 기본적인 조인 방식으로, 두 테이블 간에 공통된 데이터만을 추출할 때 사용됩니다.
### 문법
```sql
SELECT columns
FROM table1
INNER JOIN table2
ON table1.column = table2.column;
```
### 동작 원리
- **`INNER JOIN`**은 두 테이블을 조인할 때, `ON` 절에 명시된 조건에 따라 일치하는 행들만 반환합니다.
- 일치하지 않는 행들은 결과에 포함되지 않습니다.
### 예제
#### 테이블 구조
- **EMPLOYEES 테이블**:
| EmployeeID | Name | DepartmentID |
|------------|--------|--------------|
| 1 | Alice | 10 |
| 2 | Bob | 20 |
| 3 | Carol | 10 |
| 4 | Dave | 30 |
- **DEPARTMENTS 테이블**:
| DepartmentID | DepartmentName |
|--------------|----------------|
| 10 | HR |
| 20 | IT |
| 40 | Finance |
#### `INNER JOIN`을 사용한 쿼리
```sql
SELECT e.Name, d.DepartmentName
FROM EMPLOYEES e
INNER JOIN DEPARTMENTS d
ON e.DepartmentID = d.DepartmentID;
```
### 결과
- 이 쿼리는 `EMPLOYEES` 테이블과 `DEPARTMENTS` 테이블을 `DepartmentID`를 기준으로 조인합니다.
- 결과는 두 테이블에서 `DepartmentID`가 일치하는 행들만 반환됩니다.
| Name | DepartmentName |
|-------|----------------|
| Alice | HR |
| Bob | IT |
| Carol | HR |
#### 결과 해석
- `Alice`와 `Carol`은 `HR` 부서에 속해 있으며, `Bob`은 `IT` 부서에 속해 있습니다.
- `Dave`는 `DEPARTMENTS` 테이블에 해당하는 `DepartmentID`가 없기 때문에 결과에 포함되지 않았습니다.
- 또한, `DEPARTMENTS` 테이블의 `DepartmentID`가 `40`인 `Finance` 부서는 `EMPLOYEES` 테이블에 일치하는 행이 없기 때문에 결과에 포함되지 않았습니다.
### 요약
- **`INNER JOIN`**은 두 테이블에서 공통된 데이터를 반환하는 조인 방식입니다.
- `ON` 절에 지정된 조건을 기준으로 두 테이블 간의 교집합을 반환하며, 조건에 맞지 않는 행들은 결과에서 제외됩니다.
- 이는 데이터베이스에서 관계를 나타내는 기본적인 조인 방식으로, 두 테이블 간의 일치하는 데이터를 추출하는 데 자주 사용됩니다.
'Data Analysis 데이터 분석 > SQL 통한 Database 관리' 카테고리의 다른 글
like연산자 (0) | 2024.08.20 |
---|---|
select count(*) CNT from EMP_TBL A, RULE_TBL B where A.Ename like B.Rule (0) | 2024.08.20 |
LEFT OUTER JOIN` (0) | 2024.08.20 |
레코드 와 칼럼 차이 (0) | 2024.08.20 |
UNION ALL`과 `NOT EXISTS (0) | 2024.08.20 |