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를 쓰지않고 띄어쓰기로만 사용해야 합니다.

 

 

2. SELECT FROM을 이용한 조인

결과는 위와 동일합니다.

 

 

3. USING 을 이용한 조인

 

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

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

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

 

 

OUTER JOIN

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

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

 

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

 

 

1. LEFT OUTER JOIN

2. RIGHT 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테이블이 있습니다.

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

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

 

 

SQL 실행 순서 

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


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

728x90
반응형

추천 글