FIRST_NAME,DEPARTMENT_NAME,HIRE_DATE 을 한번에 검색하려고 한다.
FIRST_NAME 칼럼,HIRE_DATE 칼럼은 오른쪽의 EMPLOYEES 테이블에 속해 있고
DEPARTMENT_NAME 칼럼은 왼쪽의 DEPARTMENTS 테이블에 있다.
이 각각의 테이블의 칼럼을 JOIN을 통해 한번의 쿼리문으로 작성하도록 해주는것이 조인이다.
두 테이블은 DEPARTMENT_ID이라는 공통된 칼럼을 가지고 있기 때문에 DEPARTMENT_ID 칼럼으로 두 테이블을 결합한다.
JOIN은 어떤 상황에서 쓸까?
한개 이상의 테이블에서 데이터를 조회하기 위해서 쓴다.
즉 두 개 이상의 테이블을 결합하지 않고 한번의 질의로 원하는 결과를 얻을수 있다.
그리고 두 테이블을 묶는 JOIN 조건이 있어야한다.
JOIN 조건은 두 테이블이 공통으로 가진 칼럼이다.
JOIN 조건은 WHERE절 옆에 쓴다.
JOIN의 원리
어떻게 두 테이블을 결합할까?
Primary Key와 Foreign Key 칼럼을 통해 다른 테이블의 행과 연결한다.
Equi Join 은 두 테이블에서 공통적으로 가진 칼럼값이 일치되는 행을 연결해서 결과를 만든다.
EMPLOYEES 테이블과 DEPARTMENTS 테이블을 조인해보자.
SELECT FIRST_NAME,DEPARTMENT_NAME,HIRE_DATE FROM EMPLOYEES E,DEPARTMENTS D WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID; |
FROM절에서 EMPLOYEES E 라는 표기로 EMPLOYEES 테이블에 E라는 별칭을 붙여주었기 때문에
조건절 WHERE에 E.DEPARTMENT_ID 는 EMPLOYEES 테이블의 DEPARTMENT_ID 칼럼이라는 뜻이다.
마찬가지로 D.DEPARTMENT_ID는 DEPARTMENTS 테이블의 DEPARTMENT_ID 칼럼이라는 뜻이다.
두개의 테이블에서 이름이 같은 칼럼을 쓴다면 구분하기 힘들기 때문에 별칭을 붙여서 사용해야한다.
FROM EMPLOYEES E,DEPARTMENTS D
형식은 테이블명 뒤에 공백을 두고 별칭을 써주면 된다.
2. 결과 확인
두 테이블에 있는 칼럼들이 한번에 검색되었다!
'데이터베이스' 카테고리의 다른 글
[mariaDB] 서버 접속 권한 설정 (0) | 2022.08.03 |
---|---|
[DB]무결성 제약 조건 (0) | 2021.10.04 |
[DB]두 테이블을 MERGE 하기 (0) | 2021.10.02 |
[DB]테이블 UPDATE 하기 (0) | 2021.10.01 |
[DB]INSERT로 테이블에 내용을 추가하기 (0) | 2021.09.30 |