[오라클 SQL] Table 조인(Join) 설명



 


조인이란?


-     두개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법을 나타냅니다.

 

오늘은 JOIN 구문에서 실제 자주 사용되는 JOIN구문 두 가지에 대해서 알려드리고자 해요.

 

첫 번째는 INNER JOIN이고, 두 번째는 LEFT JOIN입니다.

 

우선 첫 번째 조인 문법인 INNER JOIN 문법에 대해서 알려드릴게요.

 

INNER JOIN은 쉽게 말해서 교집합이라고 생각 하시면 됩니다.




 

위처럼 A, B 두개의 테이블이 있는데 INNER JOIN을 하게 되면, AB의 중복된 데이터들을 보여주게 됩니다!

 

아래는 SQL문을 작성하여 INNER JOIN의 예제를 보여주는 SQL문과 데이터 결과 화면 입니다.


 

SQL 문


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

WITH

A AS

(

    SELECT 1 AS SEQ,'A' AS VALUE FROM DUAL UNION ALL

    SELECT 2 AS SEQ,'B' AS VALUE FROM DUAL UNION ALL

    SELECT 3 AS SEQ,'C' AS VALUE FROM DUAL UNION ALL

    SELECT 4 AS SEQ,'D' AS VALUE FROM DUAL UNION ALL

    SELECT 5 AS SEQ,'E' AS VALUE FROM DUAL UNION ALL

    SELECT 6 AS SEQ,'F' AS VALUE FROM DUAL UNION ALL

    SELECT 7 AS SEQ,'G' AS VALUE FROM DUAL UNION ALL

    SELECT 8 AS SEQ,'H' AS VALUE FROM DUAL UNION ALL

    SELECT 9 AS SEQ,'I' AS VALUE FROM DUAL

),

B AS

(

    SELECT 2 AS SEQ,'B' AS VALUE FROM DUAL UNION ALL

    SELECT 3 AS SEQ,'C' AS VALUE FROM DUAL UNION ALL

    SELECT 6 AS SEQ,'F' AS VALUE FROM DUAL UNION ALL

    SELECT 7 AS SEQ,'G' AS VALUE FROM DUAL UNION ALL

    SELECT 10 AS SEQ,'I' AS VALUE FROM DUAL

)

SELECT *

FROM B

INNER JOIN A

ON A.SEQ = B.SEQ

Colored by Color Scripter

cs

 

실행 결과





 

이처럼 A, B 테이블을 만들고 ABINNER JOIN하였더니, AB의 공통적으로 중복된 데이터의 결과를 보여주는 것을 확인 할 수 있습니다.

 

다음은 LEFT JOIN입니다.


 

LEFT JOIN은 기준이 되는 테이블의 값과 테이블과 기준 테이블의 중복된 데이터를 보여줍니다.

 

LEFT JOIN왼쪽 테이블이 기준이라고 이해하시면 되겠습니다!

 


LEFT JOIN의 모습은 위와 같습니다!



 

그럼 바로 LEFT JOIN 예제를 보도록 할게요!




 

SQL 문


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

WITH

A AS

(

    SELECT 1 AS SEQ,'A' AS VALUE FROM DUAL UNION ALL

    SELECT 2 AS SEQ,'B' AS VALUE FROM DUAL UNION ALL

    SELECT 3 AS SEQ,'C' AS VALUE FROM DUAL UNION ALL

    SELECT 4 AS SEQ,'D' AS VALUE FROM DUAL UNION ALL

    SELECT 5 AS SEQ,'E' AS VALUE FROM DUAL UNION ALL

    SELECT 6 AS SEQ,'F' AS VALUE FROM DUAL UNION ALL

    SELECT 7 AS SEQ,'G' AS VALUE FROM DUAL UNION ALL

    SELECT 8 AS SEQ,'H' AS VALUE FROM DUAL UNION ALL

    SELECT 9 AS SEQ,'I' AS VALUE FROM DUAL

),

B AS

(

    SELECT 2 AS SEQ,'B' AS VALUE FROM DUAL UNION ALL

    SELECT 3 AS SEQ,'C' AS VALUE FROM DUAL UNION ALL

    SELECT 6 AS SEQ,'F' AS VALUE FROM DUAL UNION ALL

    SELECT 7 AS SEQ,'G' AS VALUE FROM DUAL UNION ALL

    SELECT 10 AS SEQ,'I' AS VALUE FROM DUAL

)

SELECT *

FROM A

LEFT JOIN B

ON A.SEQ = B.SEQ

ORDER BY 1

Colored by Color Scripter

cs


실행 결과



 

이처럼 기준이 되는 A테이블을 기준으로 B값이 A테이블에 붙는 형태인데요!

여기서 중요한 점은, A테이블에는 있고, B테이블에는 없는 데이터라면 출력이 될 때 NULL값으로 출력이 된 다는 점을 꼭 알아 두시기 바랍니다ㅎㅎ

 

이로써 조인 구문에 대해서 공부해 보았습니다!

 

감사합니다.




728x90

이 글을 공유하기

댓글

Designed by JB FACTORY