KoreaIt Academy/Oracle DBMS

[Oracle] JOIN, SQL실행순서

hongeeii 2021. 8. 10.
728x90
반응형

JOIN

여러 테이블에 흩어져 있는 정보 중

사용자가 필요한 정보만 가져와서 가상의 테이블처럼 만들고 결과를 보여주는 것입니다.

정규화를 통해 조회 테이블이 너무 많이 쪼개져 있으면
작업이 불편하기 때문에 입력, 수정, 삭제의 성능을 향상시키기 위해서 JOIN을 통해 합친 후 사용합니다.

 

JOIN에는 크게 INNER JOIN과 OUTER JOIN 이있습니다.

 

INNER JOIN

--조건이 일치하는 값만 합쳐서 조회합니다.

 

1. ANSI 표준 조인 (JOIN절을 사용한 명시적인 JOIN)

 

SELECT 컬럼이름1, 컬럼이름2, ㆍㆍㆍ

FROM    테이블명1

INNER JOIN    테이블명2

ON        테이블명1.컬럼명 = 테이블명2.컬럼명;

 

※ 이 때, INNER은 생략이 가능합니다.

 

--PLAYER 테이블에서 송종국 선수가 속한 팀의 전화번호 검색하기

※ FROM 절에서 AS를 사용할 때에는 AS를 쓰지않고 띄어쓰기로만 사용해야 합니다.

[Oracle] JOIN, SQL실행순서 - JOIN - INNER JOIN
[Oracle] JOIN, SQL실행순서 - JOIN - INNER JOIN

 

 

2. SELECT FROM을 이용한 조인

[Oracle] JOIN, SQL실행순서 - JOIN - INNER JOIN

결과는 위와 동일합니다.

 

 

3. USING 을 이용한 조인

 

두 개의 테이블이 내부 조인으로 조인 될 때 조인하고자 하는 두 테이블의 컬럼명이 같을 경우

조인 조건을 길게 적지 않고 간단하게 적을 수 있도록 하는 역할을 합니다.

[Oracle] JOIN, SQL실행순서 - JOIN - INNER JOIN

결과는 역시 위로 동일 합니다.

 

 

OUTER JOIN

OUTER(외부) JOIN 이란 조인 조건에서 동일한 값이 없는 행도 반환할 때 사용하는 구문입니다.

즉 A, B 테이블을 JOIN 할 경우, 조건에 맞지 않는 데이터도 표시하고 싶을 때 OUTER JOIN을 사용합니다.

 

INNER JOIN에서는 INNER가 생략이 되었지만, OUTER JOIN에서는 OUTER을 필수적으로 붙여줘야 합니다.

 

[Oracle] JOIN, SQL실행순서 - JOIN - OUTER JOIN

 

1. LEFT OUTER JOIN

[Oracle] JOIN, SQL실행순서 - JOIN - OUTER JOIN
[Oracle] JOIN, SQL실행순서 - JOIN - OUTER JOIN

2. RIGHT OUTER JOIN

[Oracle] JOIN, SQL실행순서 - JOIN - OUTER JOIN
[Oracle] JOIN, SQL실행순서 - JOIN - OUTER JOIN

3. FULL OUTER JOIN

문법은 위와 비슷하지만 실무에서는 거의 사용하지 않는 JOIN문 입니다.

 

 

SELF JOIN

셀프 조인이란 동일 테이블 사이의 조인을 말합니다.

따라서 FROM 절에 동일 테이블이 두 번 이상 나타납니다. 

도일 테이블 사이의 조인을 수행하면 테이블과 컬럼 이름이 모두 동일하기 때문에

식별을 위해 반드시 테이블 별칭(Alias)을 사용해야 합니다.

그리고 컬럼에도 모두 테이블 별칭을 사용해서 어느 테이블의 컬럼인지 식별해줘야 합니다.

SELECT ALIAS명1.컬럼명
      , ALIAS명2.컬럼명
  FROM 테이블1 ALIAS명1, 테이블2 ALIAS명2
 WEHRE ALIAS명1.컬럼명2 = ALIAS명2.컬럼명1;

밑의 사진과 같이 EMP테이블이 있습니다.

[Oracle] JOIN, SQL실행순서 - JOIN - SELF JOIN

SELF JOIN을 하여 사원이름과 매니저 이름을 검색해 보면

[Oracle] JOIN, SQL실행순서 - JOIN - SELF JOIN
[Oracle] JOIN, SQL실행순서 - JOIN - SELF JOIN

이렇게 나타나는것을 확인할 수 있습니다.

 

 

SQL 실행 순서 

FROM > ON > JOIN > WHERE > GROUP BY > HAVING > SELECT > ORDER BY


ON절의 조건인 JOIN이 되면서 실행되고, WHERE절의 조건은 JOIN이 모두 끝나고 나서 실행됩니다.
ON과 WHERE를 같이 사용할 때와, ON만 사용할 때의 결과가 같다면
ON만 사용하는 것이 좋습니다.

728x90
반응형