728x90
더보기

예제7)

정답

예제8)

정답

 

예제9)

정답

예제10)

정답

예제11)

정답

예제12)

정답)

예제13)

정답)

예제14)

정답)

 

■ JOIN

2개 이상의 테이블에서 컬럼들을 가져오는 작업

조인 -> 여러개의 테이블에서 데이터를 검색

-> 시스템 내부에서는 조인을 수행할 테이블들을 하나의 테이블인 것 처럼 가상으로 조합

- 여러개의 테이블의 행들을 하나의 행으로 조합

-> 하나의 행으로 조합할 때, 무결성이 보장된 행으로 조합

-> 무결성이 보장된 행으로 조합을 위해 조건을 둠

(did = did) -> 조인조건

-> 조인이 발생하면  반드시 n(조인을 수행할 테이블의 개수)-1개 만큼의 조인조건을 where에 명시

 

1. n-1 -> 조인조건을 where절에 반드시 명시

2. department_id 똑같이 이름의 column을 명시할때 반드시 소유주인 table을 붙여야한다.

 

* 카티시안 곱

 

● 조인유형

-1. 등가조인(equal join) - data가 같은때

-2. 비등가 조인(non equal join) - data가 다를때

-3. 포괄 조인(outer join) -  어느 한 쪽 데이터가 더 많을때

-4. 자체 조인(self join) - 1개의 테이블을 대상으로 조인을 수행

 

select e.last_name, d.department_name, e.department_id
from employees e, departments d  => 이번에 문장이 실행되는 동안만 공백을 사용하여 alias를 사용하겠다!

(1) table full name으로 사용

(2) alias 사용

where e.department_id = d.department_id

==> 전체 사원 수 는 107명이지만 등가조인을 하고 난 후 106명으로 나온다.

이는 employees테이블의 갯수가 더 많이 때문에

포괄조인(outer join)을 사용함으로서 부족한 쪽에 {d.department_id(+)} 행(  ex)null값 )을 삽입시킨다.(문장출력동안만)

 

1. 등가조인(=)

FK에 해당하는 컬럼 -> PK에 해당하는 컬럼 ==> 등가 조인

 

예제) 90번 부서에 근무하는 사원의 이름과 부서번호와 부서이름을 출력하자.

select last_name, department_name, e.department_id
from employees e, departments d 
where e.department_id = d.department_id
and e.department_id = 90
/

결과화면 출력

2. 비등가 조인

같지 않은 컬럼을 조인시키는것

 

Join 예제1)

정답)

예제2)

정답)

정답)

예제3)

정답)

ps. SQLD자격증 취득을 위해 중요한 부분 다시 한번 훑어보자!

728x90

'Study > DataBase' 카테고리의 다른 글

Database기초 6일차 <서브쿼리>  (0) 2022.09.20
Database기초 5일차 <Group by, Having>  (2) 2022.09.19
DATABASE기초 3일차  (0) 2022.09.16
데이터베이스 기초 2일차  (0) 2022.09.15
데이터베이스 기초 1일차  (0) 2022.09.13
복사했습니다!