정보보호관리자 과정 교육/Oracle

8강 조인 : 등가 조인(Equi join)과 비등가 조인(Non Equi-join)

T-Evan 2010. 10. 19. 20:11
  RDB (관계형 데이터베이스:Relational Database)는 데이터가 중복되지 않도록 정규화를 거친 여러 개의 테이블에 데이터를 저장한다. 이렇게 분산된 테이블의 데이터들은 테이블간의 관계(Relationship)를 통해 데이터베이스(DB)의 가장 중요한 요소인 무결성을 보장받는다.
  RDB의 R이 바로 Relational으로 테이블간의 관계를 의미한다. 보통 참조, 관계 등으로 불리는 이 속성은 RDB의 가장 핵심적인 요소이다. RDB는 여러 테이블에 정보를 저장하기 때문에 필요한 데이터를 검색하기 위해서는 거의 대부분 여러 테이블의 데이터를 동시에 검색해야 한다. 이렇게 여러 테이블의 데이터를 검색하는 것을 조인(Join)이라고 한다.

★ 등가 조인과 비등가 조인
SQL> SELECT 테이블명1.컬럼명, ...테이블명2.컬럼명, ...
      > FROM 테이블명1, 테이블명2
      > WHERE 조인조건
      > AND 일반조건

   - <조인조건>두 테이블간의 관계를 수식으로 표현한 것이다.
   - 조인 문장에서 기술된 모든 테이블은 반드시 조인 조건이 기술된다.
   - 동일한 이름의 컬럼이 여러 테이블에 존재하는 경우 테이블 이름을 반드시 써줘서 어떤 테이블의 컬럼인지 알려줘야 한다.
   - 조인 조건은 SELECT 문에 사용된 테이블의 개수에 따라 달라지지만 테이블 개수가 n이라면 항상 조인 조건의 개수는 (n-1)개 이상이다.
   - 조인 조건'='를 이용하는 조인을 등가 조인(Equi-join)이라고 하고 부등호가 포함된 조인 조건을 이용하는 조인은 비등가 조인(Non equi-join)이라고 한다.


예제 1. 각 사원의 근무 부서를 검색한다.


예제 2. 광주에서 근무하는 직원의 명단을 검색한다.(부서번호와 부서명도 검색한다.)


예제 3. 각 직원의 급여를 10% 인상한 경우 급여 등급을 검색한다.


예제 4. 조인 조건이 없는 잘못된 조인문장의 결과를 확인해 보자








실습

실습쿼리



① 각 과목의 과목명과 담당 교수의 교수명을 검색 한다.


화학과 학생수강하는 과목을 검색 한다.


유기화학 과목을 수강하는 학생의 학점학과 및 학년 별로 검색 한다.


화학과 1학년 학생과목별 기말고사 학점을 검색한다.


화학과 학생기말고사 성적을 모두 검색 한다.


유기화학과목 수강생의 기말고사 시험 점수를 검색 한다.







문제

실습 쿼리



1. 화학과 학생이 수강하는 과목을 담당하는 교수의 명단을 검색한다.


2. 4.5로 환산한 평점의 평균이 2.5 이하인 학과를 검색한다.