안녕하세요.!!!
데이터베이스 SQL 쿼리에서 JOIN 문법에 대해서 알아보겠습니다.
데이터베이스 쿼리를 사용하다보면 여러 table에서 데이터를 조회하고 싶은 경우가 있습니다.
테이블 간에는 동일한 컬럼과 데이터를 보관하고 있어서
해당 테이블 간의 관계가 연결되면 조합하여서 원하는 데이터를 조회할 수 있습니다.
Join 은 여러 테이블을 조합하여 데이터를 조회하고자 할 때 사용합니다.
<A 테이블>
이름 |
선수번호 |
포지션 |
Gerrard |
8 |
MF |
Messi |
10 |
FW |
Puyol |
29 |
DF |
<B 테이블>
포지션 |
훈련전술 |
훈련시간 |
FW |
A |
10 |
MF |
B |
15 |
DF |
C |
20 |
<조회 결과>
이름 |
훈련전술 |
Gerrard |
B |
Messi |
A |
Puyol |
C |
위와 같이 A, B 테이블의 Join을 사용하여 동일하게 갖고 있는 포지션 키값을 통해
A 테이블에서 선수에 해당하는 B 테이블의 훈련전술을 조회할 수 있습니다.
Join은 오라클 join 과 ansi join 구문이 있습니다.
1> 오라클 Join 구문
Select a.name, b.name
From team a, nation b
;
2> Ansi Join 구문
Select a.name, b.name
From team a CROSS JOIN nation b
;
저는 보통 ORACLE JOIN을 사용합니다.
아래와 같이 3개의 테이블에서 JOIN을 사용하면 조금 다른 문법이 됩니다.
Oracle join
SELECT a.name “선수이름”, b.nation “선수국적”
FROM team a, nation b, league c
WHERE a.name = b.name
And a.number = c.number
;
Ansi join
SELECT a.name “선수이름”, b.nation “선수국적”
FROM team a JOIN nation b
ON a.name = b.name
JOIN league c
ON a.number = c.number
위와 같이 등가 조건의 경우 모든 테이블에 데이터가 존재하는 경우 조회되는 케이스를 INNER JOIN 이라고 합니다.
하지만 어느 테이블에 해당 컬럼이 비어있는 경우 그 데이터는 아예 조회되지 않습니다.
선수는 있지만 포지션이 아직 없다면 선수들의 포지션을 조회하고자 할 때 해당 선수는 아예 조회되지 않습니다.
아래는 OUTER JOIN 정리해두었습니다.
필요하시면 참고하세요!!!
https://lovefor-you.tistory.com/195
저도 필요해서 찾아봐서 정리하였는데 도움이 되셨으면 해서 작성하였습니다~!
조금이나마 도움이 되셨으면 좋아요 하트♥나 구독 부탁드립니다~!
파이팅 하시고 좋은 하루 되세요!!
'IT ▶ > Database' 카테고리의 다른 글
[SQL기초] OUTER JOIN 개념 및 JOIN 사용방법 (0) | 2019.11.13 |
---|---|
[SQL 기초] ORACLE JOIN 동작 원리 (0) | 2019.11.13 |
[DB기초] SQL 쿼리 기본함수 정리 (INSTR, LPAD, RPAD, LTRIM) (0) | 2019.11.07 |
SQL 쿼리 기본함수 정리 및 예시 (UPPER, CONCAT, INITCAP, SUBSTR) (0) | 2019.11.02 |
데이터베이스 INDEX 개념과 INDEX 사용방법 알아보자. – by.SC (0) | 2019.11.02 |