Oracle DB,Mysql 등 여러 데이터베이스들에서 SQL 사용법이 다를 수 있다. 표준화된 ANSI SQL을 사용하게 되면 모든 데이터베이스에서 사용가능하다. 또한 오늘 들었지만, ON에는 join 특성만 Where에는 연산만 하기 떄문에 보기 편리하다?
JOIN= 여러 테이블 간에 공통된 컬럼으로 데이터를 합쳐 표현한 것
-INNER JOIN: 공통된 조건을 만족하는 행만 조회
-OUTER JOIN: 공통된 조건을 만족하지 않는 행들까지도 조회 (LEFT,RIGHT,FULL)
바로 간단한 예제를 봐봅시다.
ex) 학생 테이블과 수업 테이블의 조인
@INNER JOIN
1
2
3
4
|
select
A.s_id, A.s_name,A.c_num,B.c_subject
from Student A JOIN Class B
ON A.c_num=B.c_num
|
cs |
s_id | s_name | c_num | c_subject |
A1 | 루피 | 1 | 국어 |
A2 | 나미 | 2 | 영어 |
@LEFT OUTER JOIN
1
2
3
4
|
select
A.s_id, A.s_name,A.c_num,B.c_subject
from Student A LEFT OUTER JOIN Class B
ON A.c_num=B.c_num
|
cs |
s_id | s_name | c_num | c_subject |
A1 | 루피 | 1 | 국어 |
A2 | 나미 | 2 | 영어 |
A3 | 조로 | 4 | null |
@RIGHT OUTER JOIN
1 2 3 4 | select A.s_id, A.s_name,A.c_num,B.c_subject from Student A RIGHT OUTER JOIN Class B ON A.c_num=B.c_num | cs |
s_id | s_name | c_num | c_subject |
A1 | 루피 | 1 | 국어 |
A2 | 나미 | 2 | 영어 |
null | null | 3 | 수학 |
@FULL OUTER JOIN
1 2 3 4 | select A.s_id, A.s_name,A.c_num,B.c_subject from Student A FULL OUTER JOIN Class B ON A.c_num=B.c_num | cs |
s_id | s_name | c_num | c_subject |
A1 | 루피 | 1 | 국어 |
A2 | 나미 | 2 | 영어 |
A3 | 조로 | 4 | null |
null | null | 3 | 수학 |
본 글은 다소 주관적인 생각들을 포함하고 있어 잘못된 정보를 제공할 수도 있습니다. 부족한 점이 있으면 댓글 남겨주세요. 추가 및 수정 하도록 하겠습니다. 감사합니다.
[SI에서 살아남기] Case When Then Else End에 대한 이해 (0) | 2020.05.08 |
---|
댓글 영역