Join(조인)
- 두 개 이상의 테이블을 결합하여 데이터를 추출하는 기법
- 두 테이블의 공통값을 이용하여 칼럼을 조합하는 수단
- 표준(ANSI) SQL문 -> 공통 -> left 테이블이 기준(테이블1)
1 |
|
- Oracle SQL문 (각 DB만의 SQL문이 있다.)
1 |
|
- 테이블명.칼럼명
1 |
|
테이블 조인
1) 테이블 2개 조인
1 |
|
2) 테이블 3개 조인
1 |
|
3) 테이블 4개 조인
1 |
|
부서 테이블
1 |
|
직원 테이블
1 |
|
- 2개 테이블에 중복되는 칼럼명의 테이블명 명시해야함
1 |
|
- 테이블 별칭(ALIAS)을 해줘서 간편하게 한다.
1 |
|
- 논리적 테이블을 별칭을 통해 새로운 테이블로 가공할 수 있다.
ALIAS가 여기까지 허용
1 |
|
이렇게도 작성 가능
물론 aa 생략 가능하다
1 |
|
1) 각 부서의 인원수를 인원수순으로 아래와 같이 조회
예시)
연구팀 5명, 총무팀 4명, 경리팀 2명
1 |
|
2) 각 부서별 급여, 커미션의 합계를 구한 후 급여합계순으로 조회
예시)
총무팀 1655 413
연구팀 1535 307
경리팀 425 212
1 |
|
선생님 방식 1
조인 후 합계
1 |
|
선생님 방식 2
합계 후 조인
1 |
|
3) 각 지역별 커미션 합계를 구한 후 그 커미션 합계가 20이하인 지역만 지역순으로 조회
예시)
대구 15
대전 13
1 |
|
선생님 방식
1 |
|
조인 연습하기(학사관리 프로그램)
학생테이블
1 |
|
행 추가
1 |
|
- 주소별 인원수가 3명 미만 행을 조회
1 |
|
과목테이블
1 |
|
행 추가
1 |
|
- 디자인 교과목 중 3학점만 조회
1 |
|
- 프로그램 교과목의 학점 평균보다 낮은 프로그램 교과목을 조회
1 |
|
수강 테이블 생성
1 |
|
옵션!
ON UPDATE CASCADE–부모테이블이 업데이트를 하면 같이 업데이트
ON DELETE NO ACTION –부모테이블이 삭제되면 부모테이블만 삭제 /CASCADE는 같이 삭제
수강테이블 시퀀스 생성
1 |
|
행 추가
1 |
|
수강테이블과 학생테이블 조인
1 |
|
수강테이블과 과목테이블 조인
1 |
|
수강테이블을 기준으로 학생테이블, 과목테이블 조인
1 |
|
문1) 지역별로 수강신청 인원수 지역 조회
예시)
서울 5
제주 3
부산 1
1 |
|
문2) 과목별 수강 신청 인원수, 과목코드, 과목명 조회
예시)
p001 2 OOP
p002 1 Oracle
…
1 |
|
문3) 지역별로 수강신청 인원수, 지역 조회
예시)
부산 1
제주 2
서울 2
1 |
|
조인 종류
- INNER JOIN (내부조인)
- 두 테이블에 공통으로 존재하는 칼럼을 이용하는 방식. INNER 생략가능
1 |
|
- LEFT OUTER JOIN
- 왼쪽 테이블의 모든 데이터와 오른쪽 테이블의 동일 데이터를 추출
- 왼쪽에 있는건 일치하지 않더라도 데이터를 가져오는거.
1 |
|
- RIGHT OUTER JOIN
- 오른쪽 테이블의 모든 데이터와 왼쪽 테이블의 동일 데이터를 추출
1 |
|