앞에 포스팅한 조인글에서는 SQL-99표준을 이용하지 않고 조인을 사용했는데
이번에는 SQL-99표준 문법을 사용한 조인을 배워볼려고 합니다.
SQL-99 표준 문법을 사용해서 얻는 이점이 무엇인가???
WHERE문과 조인 조건식을 따로 분리할 수 있기 때문에 가독성이 좋아집니다.
NATURAL JOIN
앞서 배운 등가 조인과 같은 방식으로 조인됩니다.
SELECT *
FROM 학생 S NATURAL JOIN 학과 M;
등가 조인인데 왜 WHERE절을 이용해서 조건식을 만들어주지 않는 이유는 ???
바로 NATURAL JOIN은 두 테이블 학생/학과의 공통 속성이 학과번호를 기준으로 자동으로 조인해주기 때문입니다.
등가 조인인 경우
SELECT *
FROM 학생 S, 학과 M
WHERE 학생.학과번호 = 학과.학과번호;
위의 두개의 쿼리문의 출력결과는 똑같습니다.
JOIN ~ USING
JOIN ~ USING도 마찬가지로 등가 조인과 같은 결과를 내줍니다.
NATURAL JOIN과의 차이점은 무엇인가 하면, 조인 조건식의 속성을 지정해줄 수 있다는 것입니다.
SELECT *
FROM 학생 JOIN 학과 USING (학과번호);
JOIN ~ ON
JOIN ~ ON도 등가 조인의 종류로써, 조인 기준 조건식을 ON 뒤에 명시 해줍니다.
SELECT *
FROM 학생 S JOIN 학과 M ON (S.학과번호 = M.학과번호)
WHERE 학비 >= 300;
ON뒤에 조인의 조건식을 따로 적어줍니다.
맨 위에서 설명했던 SQL-99문법을 사용해서 좋은점에 대한 이유가 바로 이것인데, JOIN조건식을 따로 지정하기 때문에
WHERE절과 구분되어 쿼리의 가독성이 올라갑니다.
외부 조인
왼쪽 외부 조인
SELECT *
FROM 학생 S1 LEFT OUTER JOIN 학생 S2 ON (S1.멘토 = S2.학번);
오른쪽 외부 조인
SELECT *
FROM 학생 S1 RIGHT OUTER JOIN 학생 S2 ON (S1.멘토 = S2.학번);
전체 외부 조인
SELECT *
FROM 학생 S1 FULL OUTER JOIN 학생 S2 ON (S1.멘토 = S2.학번);
3개 이상의 테이블을 조인할 때
FROM TABLE1 JOIN TABLE2 ON (조건식)
JOIN TABLE3 ON (조건식)
'IT 공부 > DB' 카테고리의 다른 글
[ MySQL ] Auto_increment 초기화 && 기존 데이터 ID값 초기화 (0) | 2022.04.03 |
---|---|
[DB] 객체 - 데이터 사전, 인덱스, 뷰, 시퀀스, 동의어 (0) | 2021.12.02 |
[DB] 서브쿼리 (단일행, 다중행, 다중열, WITH절) (0) | 2021.12.01 |
[DB] 등가 조인, 비등가 조인, 자체 조인, 외부 조인 (0) | 2021.11.29 |
MYSQL (0) | 2021.01.18 |