두개의 테이블을 합치는 작업을 조인 이라고 한다.
관계형 데이터베이스에서는 데이터 중복 저장을 피하려고 데이터를 여러 테이블로 세분화해 저장해야한다.
이럴때 필요한 것이 '조인'
✔ JOIN의 기본 사용법
- 두 개의 테이블에 하나라도 같은 컬럼이 있어야한다
- 두 컬럼의 값은 공유되어야한다.
- 조인을 위해 기본키(Primary Key)와 외래키(Foreign Key)를 활용한다
cross join 크로스조인
select * from btable,gtable;
equi join 이퀴조인 동등조인 자연조인
select * from btable,table where btable.gno=gtable.gno;
셀프조인
select e1.employee_id,e1.manager_id,e2.employee_id,e2.first_name
from employees e1,employees e2
where e1.manager_id=e2.employee_id;
ex)
select * from locations
where country_id in(
select country_id from countries where region_id=2;
);
해석 : 2번 대륙에 존재하는 나라정보를 바깥쪽 sql에서 안쪽에서 검색된 나라에 존재하는 도시정보를 출력함.
ex) 10번 부서가 존재하면 모든 사원을 출력해보자
select * from emlployees
where exists(
select * from departments where depatment_id=10
);
ex)
| Salary |
|---|
| 50 |
| 100 |
| 150 |
| 200 |
50은 90과 170보다 작으니 충족
100은 170보다 작으니 충족
150은 170보다 작으니 충족
200은 (30,90,170)의 값 모두에 만족하지 않아 출력하지 않는다.
select salry from employees where salary >= all (30,90,170);
Salary 컬럼의 값 200이 30,90,170의 모든 값에 만족하여 200만 출력한다.