Yoon.s

[Oracle] SQL문_JOIN 본문

백/DB

[Oracle] SQL문_JOIN

yo_onHJ 2020. 8. 24. 18:46

일단, 테이블 확인

EMP 테이블
DEPT 테이블

0. JOIN

select * from emp, dept;
select count(*) from emp, dept; 	--64건

크로스로 모두를 연결하여 64건이 나오게 됨. 

예. SMITH의 deptno 20(emp) - 10(dept)

                                       - 20

                                       - 30

                                       - 40

 

 

1. INNER JOIN

가장 일반적인 조인 형태

 

select * 
from emp, dept
where emp.deptno=dept.deptno;		--16건

- 이때, 조건에 null값이 존재한다면 (deptno가 null인 값)

데이터 반환되지 않아 결과에 나오지 않는다!! 

 

inner join 결과 값

 

 

2. OUTER JOIN

두 테이블에서 어느 한 테이블의 데이터가 없을 경우, 전체 row수를 보존하면서 조인

- 조건에 null 값이 존재하지만, 데이터 반환 때 결과 값을 보고 싶을 때 사용!!! 

 

select * 
from emp, dept
where emp.deptno=dept.deptno(+);		--16건

 

outer join 결과 값

위 예제의 inner join과 outer join의 경우, 

조건인 deptno가 null값을 가진 것이 없기 때문에 둘다 동일한 결과가 나오는 것!! 

 

 

3. ANSI JOIN

ANSI 표준 문법을 사용한 조인

 

select d.deptno, d.dname, e.ename, e.sal
from emp e inner join dept d
on e.deptno=d.deptno;				--16건

 


# 질의문 사용한 JOIN

 

select *
from emp, dept
where emp.deptno=dept.deptno
and ename='SMITH';

 

INNER JOIN으로 묶은 테이블에서 and를 이용하여 질의문을 추가한다. 

(이름이 SMITH인 것)

 

질의문 결과

' > DB' 카테고리의 다른 글

[mysql] Access denied for user ''@'localhost' 오류  (0) 2020.10.03
[mysql] mariaDB 시작하기  (0) 2020.10.01
[Oracle] SQL문_SELECT(에러해결)  (0) 2020.08.24
[Oracle] SQL문_SELECT(WHERE)  (0) 2020.08.24
[Oracle] SQL문_테이블 CREATE, INSERT  (0) 2020.08.21
Comments