Database/MySQL
JOIN2
java나유
2022. 10. 12. 12:09
9)Natural Join
- 조인하고자 하는 컬럼의 이름이 동일한 경우 조인 조건을 생략하고 조인을 할 수 있는 경우
- 조인에 사용한 컬럼은 한 번만 조회
10)OUTER JOIN
- 한쪽에만 존재하는 데이터도 JOIN에 참여
- MySQL에는 LEFT OUTER JOIN과 RIGHT OUTER JOIN을 지원 FULL OUTER JOIN은 지원하는 않는데 이는 SET연산으로 해결
select
*
from
emp left outer join dept
on
emp.DEPTNO =dept.DEPTNO ;
=>emp테이블의 모든 데이터는 join에 참여하고 dept테이블의 데이터는 일치하지 않는 것만 참여
select
*
from
emp
right outer join dept
on
emp.DEPTNO =dept.DEPTNO ;
=>DEPT테이블에만 존재했던 DEPINO가 40인 데이터도 조인에 참여하는 대신 EMP테이블의 모든 컬럼 값은 NULL이됨
11)SET OPERATOR
- 테이블 구조가 완전히 일치할 떄만 사용 할 수 있는 연산 구조가 일치한다는 의미는 컬럼 개수와 자료형 및 순서가 일치해야 함 컬럼의 이름이나 의미는 아무런 상관X
- UNION, UNION ALL, INTERSECT, EXCEPT
- UNION:합집합, 중복된 데이터는 1번만 출력
- UNION ALL:합칩합, 중복된 데이터도 전부 출력
- INTERSECT 교집합
- EXCEPT 차집합
-union과 union all의 차이
=>intersect:maria db에서는 가능한데 MySQL에서는 Join으로 해결
차집합:maria db에서는 except사용, oracle에서는 minus
select
distinct deptno
from
dept
where
deptno not in(select distinct deptno from emp);
728x90