[SQLD] JOIN & 집합연산자

yjkim97·2023년 8월 30일

자격증

목록 보기
16/24
post-thumbnail

JOIN

1. JOIN 분류

분류설명
EQUI JOIN= 조건으로 조인하는 방식
NON EQUI JOIN= 이 아닌 다른 조건 (between > >= < <=)으로 조인하는 방식

2. STANDARD JOIN (ANSI/ISO)

ANSI/ISO SQL에서 표준으로 정한 JOIN 형태

형태설명
INNER JOIN
OUTER JOINLEFT, RIGHT, FULL
Oracle에서는 (+)로 표시 가능
NATURAL JOIN두 테이블에서 같은 이름을 가진 모든 컬럼들에 대한 equal 조인
CROSS JOIN
(=Cartesian Product)
두 테이블간의 조인조건이 없는 경우, 조합할 수 있는 모든 경우를 출력
USING 조건절using (컬럼)
ON 조건절

⭐️ NATURAL JOINUSING 조건절 ▶️ Join할 컬럼에 대해서는 alias나 테이블명과 같은 접두사를 붙일 수 없다.

⭐️ OUTER 조인시 일반조건 위치에 따라 다른 결과
Outer join에서 ON절은 조인할 대상을 결정한다. 그러나 기준 테이블은 항상 모두 표시된다.
결과 건에 대한 필터링은 Where절에서 수행된다.

1. where 절에 위치한 경우 : 결과 데이터 필터링
2. on 절에 위치한 경우 : 조인 데이터 필터링 (조건에 해당되는 row는 조인된 데이터가 제공되고 해당하지 않는 나머지 row는 NULL이 찍힌다.)


집합 연산자 (SET OPERATOR)

  • 두개 이상의 테이블에서 조인을 사용하지 않고 연관된 데이터를 조회할 수 있음
  • SELECT절의 컬럼 수와 각 컬럼의 위치, 데이터 타입이 상호 호환 가능해야 함
  • Order by 절은 맨 아래의 SQL에만 기술 가능
  • ⭐️ 결과 테이블의 컬럼명은 맨 위의 SELECT문 컬럼명으로 결정

1. 종류

⭐️ Oracle은 MINUS / ANSI SQL은 EXCEPT

profile
어제는 🐸두꺼비 오늘은 😄YJ

0개의 댓글