데이터베이스 구축
핵심224
INNER JOIN
출제 빈도
1회
원본 67쪽
INNER JOIN은 일반적으로 EQUI JOIN과 NON-EQUI JOIN으로 구분된다.
조건이 없는 INNER JOIN을 수행하면 CROSS JOIN과 동일한 결과를 얻을 수 있다.
• EQUI JOIN
- EQUI JOIN은 JOIN 대상 테이블에서 공통 속성을
기준으로 ‘=’(equal) 비교에 의해 같은 값을 가지는 행을 연결하여 결과를 생성하는 JOIN 방법이다.
- WHERE절을 이용한 EQUI JOIN의 표기 형식
| SELECT [테이블명1.]속성명, [테이블명2.]속성명, …FROM 테이블명1, 테이블명2, …WHERE 테이블명1.속성명 = 테이블명2.속성명; |
|---|
- NATURAL JOIN절을 이용한 EQUI JOIN의 표기
형식
| SELECT [테이블명1.]속성명, [테이블명2.]속성명, …FROM 테이블명1 NATURAL JOIN 테이블명2; |
|---|
- JOIN ~ USING절을 이용한 EQUI JOIN의 표기 형식
| SELECT [테이블명1.]속성명, [테이블명2.]속성명, …FROM 테이블명1 JOIN 테이블명2 USING(속성명); |
|---|
<학생>
<학과>
<성적등급>
| 학번 | 이름 | 학과 | 코드선배성적 | |
|---|---|---|---|---|
| 15 | 고길동com | 83 | ||
| 16 | 이순신han | 96 | ||
| 17 | 김선달com | 15 | 95 | |
| 19 | 아무개han | 16 | 75 | |
| 37 | 박치민 | 17 | 55 |
| 학과코드학과명 | |
|---|---|
| com | 컴퓨터 |
| han | 국어 |
| eng | 영어 |
| 등급최저최고 | |
|---|---|
| A | 90 |
| B | 80 |
| C | 60 |
| D | 0 |
이 같은 튜플을 JOIN하여 ‘학번’, ‘이름’, ‘학과코드’, ‘학과명’을 출력하는 SQL문을 작성하시오.
SELECT 학번, 이름, 학생.학과코드, 학과명FROM 학생, 학과WHERE 학생.학과코드 = 학과.학과코드;
SELECT 학번, 이름, 학생.학과코드, 학과명FROM 학생 NATURAL JOIN 학과;
SELECT 학번, 이름, 학생.학과코드, 학과명FROM 학생 JOIN 학과 USING(학과코드);
<결과>
| 학번 | 이름 | 학과코드 | 학과명 |
|---|---|---|---|
| 15 | 고길동 | com | 컴퓨터 |
| 16 | 이순신 | han | 국어 |
| 17 | 김선달 | com | 컴퓨터 |
| 19 | 아무개 | han | 국어 |