상세 컨텐츠

본문 제목

[SI에서 살아남기] ANSI SQL JOIN에 대한 이해

SI에서 살아남기/DB

by 주관적인 2020. 5. 6. 22:33

본문

*ANSI SQL 사용 이유?

Oracle DB,Mysql 등 여러 데이터베이스들에서 SQL 사용법이 다를 수 있다. 표준화된 ANSI SQL을 사용하게 되면 모든 데이터베이스에서 사용가능하다. 또한 오늘 들었지만, ON에는 join 특성만 Where에는 연산만 하기 떄문에 보기 편리하다? 

 

 

*ANSI SQL

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 수학

 

본 글은 다소 주관적인 생각들을 포함하고 있어 잘못된 정보를 제공할 수도 있습니다. 부족한 점이 있으면 댓글 남겨주세요. 추가 및 수정 하도록 하겠습니다. 감사합니다.

관련글 더보기

댓글 영역