728x90
1. Inner Join
2. Outer Join
1. Inner Join
2개의 릴레이션에서 연관된 튜플들을 결합하여, 하나의 새로운 릴레이션을 반환한다.
형식
WHERE 절
1
|
SELECT 테이블명1.속성명, 테이블명2.속성명 FROM 테이블명1, 테이블명2 WHERE 테이블명1.속성명 = 테이블명2.
|
cs |
NATURAL JOIN
1
|
SELECT 속성명, 속성명 FROM 테이블명1 NATURAL JOIN 테이블명2;
|
cs |
JOIN ~ USING절
1
|
SELECT 속성명, 속성명 FROM 테이블명1 JOIN 테이블명2 USING(속성명);
|
cs |
[사용예제]
사용한 테이블



▷ 학생 테이블과 학과 테이블에서 학과코드 값이 같은 튜플을 JOIN하여 학번,이름,학과코드,학과명을 출력하는 SQL문을 작성하라
1) WHERE 절 사용
1
|
SELECT 학번,이름,학생.학과코드,학과명 FROM 학생,학과 WHERE 학생.학과코드=학과.학과코드;
|
cs |
2) NATURAL JOIN
1
|
SELECT 학번,이름,학과코드,학과명 FROM 학생 NATURAL JOIN 학과;
|
cs |
3) JOIN USING
1
|
SELECT 학번,이름,학과코드,학과명 FROM 학생 JOIN 학과 USING(학과코드);
|
cs |
[실행결과]
▷학생 테이블과 성적등급 테이블을 JOIN하여 각 학생의 '학번','이름','성적','등급'을 출력하는 SQL문을 작성하시오
1
|
SELECT 학번,이름,성적,등급 FROM 학생,성적등급 WHERE 학생.성적 BETWEEN 성적등급.최저 AND 성적등급.최고;
|
cs |
[실행결과]
2. OUTER JOIN
LEFT OUTER JOIN : INNER JOIN의 결과를 구한 후, 우측 항 릴레이션의 어떤 튜플과도 맞지 않는 좌측 항의 릴레이션에 있는 튜플들에 NULL값을 붙여서 INNER JOIN의 결과에 추가한다.
1
|
SELECT 테이블명1.속성명, 테이블명2.속성명 FROM 테이블명1 LEFT OUTER JOIN 테이블명2 ON 테이블명1.속성명 = 테이블명2.속성명;
|
cs |
RIGHT OUTER JOIN: INNER JOIN의 결과를 구한 후, 좌측 항 릴레이션의 어떤 튜플과도 맞지 않는 우측 항의 릴레이션에 있는 튜플들에 NULL값을 붙여서 INNER JOIN의 결과에 추가한다.
1
|
SELECT 테이블명1.속성명, 테이블명2.속성명 FROM 테이블명1 RIGHT OUTER JOIN 테이블명2 ON 테이블명1.속성명 = 테이블명2.속성명;
|
cs |
사용 예제
학생 테이블과 학과 테이블에서 학과코드 값이 같은 튜플을 조인하여 학번,이름,학과코드,학과명을 출력하는 SQL문을 작성
1
2
|
select 학번,이름,학생.학과코드,학과명 from 학생 left outer join 학과 on 학생.학과코드=학과.학과코드;
select 학번,이름,학생.학과코드,학과명 from 학생 right outer join 학과 on 학생.학과코드=학과.학과코드;
|
cs |
728x90
'프로그래밍 언어 > SQL' 카테고리의 다른 글
<오라클> 오라클 데이터 형식 (0) | 2021.09.30 |
---|---|
<SQL> DML -SELECT-(2)group by, having,window (0) | 2021.09.27 |
<SQL> DML -Select- (1)일반,조건,정렬,복수테이블 검색 (0) | 2021.09.27 |
<SQL> DCL (0) | 2021.09.03 |