JOIN

양혜정·2024년 2월 25일

Oracle

목록 보기
16/49

JOIN

  • 테이블(뷰)과 테이블(뷰)를 합치는 것
  • 컬럼과 컬럼을 합치는 것

UNION

  • 행과 행을 합치는 것

[ SQL 1992 CODE 방식 ]

  • 테이블(뷰)과 테이블(뷰) 사이에 콤마(,)

[ SQL 1999 CODE 방식 ]

  • 테이블(뷰)과 테이블(뷰) 사이에 JOIN 단어를 넣어주는 것
  • ANSI ( 표준화 ) SQL

CROSS JOIN

데카르트곱 => 모든 경우의 수

[SQL 1992 CODE 방식]
select *
from employees , departments
order by employee_id;

[SQL 1999 CODE 방식(CROSS JOIN)]
select *
from employees CROSS JOIN departments
order by employee_id;
-- 결과
-- count(employees) × count(departments) 행 출력

EQUI JOIN [SQL 1992 CODE 방식]

[SQL 1992 CODE 방식]
select *
from employees E, departments D
where E.department_id = d.department_id(+)
order by employee_id;
-- (+)가 안 붙은 테이블 E(employees) 테이블의 모든 행을 출력하고
-- 조건에 만족하는 행들을 보여준다.
-- E(employees)에 존재하지만 D(departments)에서 null 값도 출력
-- (+)는 양쪽에 붙으면 안된다!!

Microsoft 사 제품인 MS-SQL 서버

[SQL 1992 CODE 방식]
select *
from employees E, departments D
where E.department_id =* d.department_id
order by employee_id;
-- '=' 을 중심으로 * 이 가까운 곳이 (+) 와 같은 역할

INNER JOIN ( == 내부조인 ) , [SQL 1999 CODE 방식]

  • ON 절 => JOIN 조건절과 함께 사용
[SQL 1999 CODE 방식]
select *
from employees E INNER JOIN departments D -- INNER 생략 가능
ON E.department_id = D.department_id
order by employee_id;
-- E에 존재하는 null 값은 나오지 않는다.

OUTER JOIN ( == 외부조인), [SQL 1999 CODE 방식]

  • ON 절 => JOIN 조건절과 함께 사용
[SQL 1999 CODE 방식]
select *
from employees E LEFT OUTER JOIN departments D  
										-- OUTER 생략 가능
-- OUTER JOIN 을 중심으로 왼쪽에 있는 테이블에 있는 모든행 출력 후
-- 조건에 만족하는 행들을 보여준다.
ON E.department_id = D.department_id
order by employee_id;
-- 종류 : LEFT, RIGHT, FULL OUTER JOIN

0개의 댓글