[오라클 SQL] Table 조인(Join) 설명
- Database(데이터베이스)/Oracle
- 2019. 7. 19. 04:00
조인이란?
- 두개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법을 나타냅니다.
오늘은 JOIN 구문에서 실제 자주 사용되는 JOIN구문 두 가지에 대해서 알려드리고자 해요.
첫 번째는 INNER JOIN이고, 두 번째는 LEFT JOIN입니다.
우선 첫 번째 조인 문법인 INNER JOIN 문법에 대해서 알려드릴게요.
INNER JOIN은 쉽게 말해서 교집합이라고 생각 하시면 됩니다.
위처럼 A, B 두개의 테이블이 있는데 INNER JOIN을 하게 되면, A와 B의 중복된 데이터들을 보여주게 됩니다!
아래는 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 |
실행 결과
이처럼 A, B 테이블을 만들고 A와 B를 INNER JOIN하였더니, A와 B의 공통적으로 중복된 데이터의 결과를 보여주는 것을 확인 할 수 있습니다.
다음은 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 |
실행 결과
이처럼 기준이 되는 A테이블을 기준으로 B값이 A테이블에 붙는 형태인데요!
여기서 중요한 점은, A테이블에는 있고, B테이블에는 없는 데이터라면 출력이 될 때 NULL값으로 출력이 된 다는 점을 꼭 알아 두시기 바랍니다ㅎㅎ
이로써 조인 구문에 대해서 공부해 보았습니다!
감사합니다.
'Database(데이터베이스) > Oracle' 카테고리의 다른 글
[오라클 SQL] Between 문법 사용 예제 (0) | 2019.07.24 |
---|---|
[오라클 SQL] LISTAGG 함수를 이용하여 여러행을 단일 컬럼으로 가져오기 (0) | 2019.07.23 |
[오라클 SQL] 시퀀스(Sequence) 생성하는 방법 (0) | 2019.07.18 |
[오라클 SQL] 오라클 중복 데이터 제거하는 방법 – DISTINCT 키워드 사용 (0) | 2019.07.16 |
[오라클 SQL] 오라클 TO_CHAR 숫자 Format(형태) 사용 방법 (0) | 2019.07.12 |
이 글을 공유하기