
Concept
Join은 2개의 테이블에 대해 연관된 튜플들을 결합하여 새로운 릴레이션을 반환
- JOIN은 크게 INNER & OUTER JOIN 으로 구분됨
INNER JOIN
EQUI JOIN과NON-EQUI JOIN으로 구분됨
EQUI 조인
- EQUI JOIN은 JOIN 대상 테이블에서
공통 속성을 기준으로 ‘=’ 비교에 의해 같은 값을 가지는 행을 연결하여 결과를 생성 - EQUI JOIN에서 JOIN 조건이 ‘=’일 때
동일 속성이 2번 나타나게 되는데, 이 중중복된 속성을 제거하여 1번만 표기하는 방법을NATURAL JOIN이라 한다. - EQUI JOIN에서
연결 고리가 되는공통 속성을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(속성명);
Example



Q. <학생> 테이블과 <학과> 테이블에서 학과코드값이 같은 튜플을 Join하여 학번, 이름, 학과코드, 학과명을 출력하는 SQL문을 작성하시오.
Select 학번, 이름, 학생.학과코드, 학과명
From 학생, 학과
Where 학생.학과코드 = 학과.학과코드;
Select 학번, 이름, 학생.학과코드, 학과명
From 학생 Natural Join 학과;
Select 학번, 이름, 학생.학과코드, 학과명
From 학생 Join 학과 Using(학과코드);

-
테이블을 조인하여 사용할 때
한 테이블에만있는 속성은 테이블명을생략할 수 있지만두 테이블에 모두 속해 있는 속성은반드시속성명을 테이블명과 함께 표시해야 한다. -
Natural Join은조인할 속성을지정하지 않기때문에 조인하려는 두 테이블에는같은 이름,같은 속성의 도메인이 반드시존재해야 한다. <학생> 테이블과 <학과>테이블에는 같은 이름의 속성과 범위가 같은 도메인을 갖는 학과코드가 있기 때문에 Natural Join이 가능
NON-EQUI 조인
- NON-EQUI은 JOIN 조건에 ‘=’ 조건이 아닌 나머지 비교 연산자를 사용하는 JOIN 방법이다.
SELECT [테이블명1.]속성명, [테이블명2.]속성명
FROM 테이블명1, 테이블명2
WHERE (NON-EQUI JOIN 조건);
Q. <학생> 테이블과 <성적등급> 테이블을 Join하여 각 학생의 학번, 이름, 성적, 등급을
출력하는 SQL문을 작성하시오.
SELECT 학번, 이름, 성적, 등급
FROM 학생, 성적등급
WHERE 학생.성적 BETWEEN 성적등급.최저 AND 성적등급.최고;





近期评论