728x90
- 데이터 베이스에서 가장 중요한 부분은 데이터를 가져오는데 걸리는 시간의 최소화이다.
- 데이터 베이스는 저장된 데이터의 총량이 크면 클수록 데이터를 가져오는데 시간이 오래 걸리게 된다.
- 이 때문에 데이터의 중복을 최소화 하여 데이터를 빠르게 가져올 수 있도록 테이블을 구성하게 된다.
- 이 과정에서 테이블을 두 개 이상으로 분리될 수밖에 없다.
위와 같이 데이터의 중복을 최소화 하기 위해 테이블을 분리시킨 후 데이터를 가져올 때 여러 테이블을 하나의 결과로 가져와야 하는데 이럴 때 JOIN문을 사용한다.
JOIN문을 사용하면 여러 테이블의 데이터를 한번에 가져올 수 있다.
-- 조인
-- 사원들의 사원번호, 근무 부서 번호, 근무 부서 이름을 가져온다.
-- 사원 번호를 기준으로 오름차순 정렬
select a2.emp_no, a2.dept_no, a1.dept_name
from departments a1, dept_emp a2
order by a2.emp_no asc;
위와 같이 코드를 작성하게 되면 한가지의 조건에 모든 로우가 붙게 되어 원하는 데이터를 가져오지 못하는 경우가 생길 수도 있다.
따라서 이럴 때는 조건문을 통해 원하는 데이터만 뽑아 올 수 있도록 한다.
select a2.emp_no, a2.dept_no, a1.dept_name
from departments a1, dept_emp a2
where a1.dept_no = a2.dept_no -- 조건문을 달아서 원하는 정보를 가져올 수 있다
order by a2.emp_no asc;
테이블을 3개를 조인해야 하는 경우가 생길 수도 있다.
이럴 때는 조건문에 and를 통해 3개의 테이블을 붙여준다.
-- 3개의 테이블 조인
-- 각 사원들의 사원번호, first_name, 근무 부서 이름을 가져온다
select a1.emp_no, a1.first_name, a3.dept_name
from employees a1, dept_emp a2, departments a3
where a1.emp_no = a2.emp_no and a2.dept_no = a3.dept_no;
'MySQL' 카테고리의 다른 글
MySQL 데이터 베이스 및 테이블 생성 (0) | 2021.07.07 |
---|---|
MySQL 서브쿼리(SUB QUERY) (0) | 2021.07.05 |
MySQL GROUP BY 과 HAVING (0) | 2021.07.04 |
MySQL SELECT문 및 연산자 (0) | 2021.07.01 |
MySQL 시작 및 데이터베이스 조회 (0) | 2021.06.30 |