[SQL] JOIN / SET OPERATOR / SUBQUERY
[SQL] JOIN / SET OPERATOR / SUBQUERY
- JOIN의 개념
- equals JOIN : 외래키와 기본키를 연관시켜 JOIN한다.
* ANSI 표준 구문 ( USING/ ON )
- USING은 별칭을 쓸 수 없다.
- 좀 더 유연하게 만들기 위해서는 ON을 이용한다.
LEFT/RIGHT JOIN
- DEPT_ID값이 NULL값인 튜플이 있다.
- 그냥 JOIN을 할 경우 DEPT_ID가 NULL인 튜플은 누락됨을 알 수 있다.
- 누락을 방지하기 위해서 LEFT/RIGHT JOIN을 할 수 있다.
* LEFT JOIN
- EMPLOYEE테이블이 기준이 되어 EMPLOYEE 테이블의 튜플은 모두 출력한다.
*RIGHT JOIN
- DEPARTMENT테이블이 기준이 되어 DEPARTMENT 테이블의 튜플은 모두 출력한다.
* FULL JOIN
- 모든 테이블의 NULL값의 튜플을 포함한다.
- SELF JOIN
- OUTER JOIN(RIGTH/LEFT)을 이용해 NULL값인 튜플도 포함하여 출력할 수 있다.
N개의 테이블 JOIN하기
- JOIN된 결과 필터링 하기
- SET OPERATOR (UNION/UNION ALL/INTERSECT/MINUS)
- 쿼리1과 쿼리2의 SELECT 목록은 반드시 컬럼의 갯수, 데이터 타입이 동일해야하므로 이를 위해 DUMMY COLUMN을 이용하거나 형변환함수를 이용한다.
- UNION : 중복제거 합집합
- UNION ALL : 중복포함 합집합
- INTERSECT : 교집합
- MINUS : 차집합
SubQuery
- SELECT가 SELECT를 포함한다.
- 다른 쿼리에 포함된 내부 쿼리(서브 쿼리)는 외부 쿼리(메인 쿼리)에 사용될 값을 반환하는 역할
- 유형 : 단일행 서브쿼리 / 다중행 서브쿼리
* 단일행
* 다중행
- 다중행 연산자 IN, ANY, ALL 을 이용한다.
- IN : 검색된 값 중 하나만 일치하면 참
- ANY : 검색된 값 중에 조건에 맞는 것이 하나 이상 있으면 참
컬럼 > ANY : 가장 작은 값보다 크다. 컬럼 > MIN
컬럼 < ANY : 가장 큰 값보다 작다. 컬럼 < MAX
- ALL : 모든 검색된 값과 조건에 맞아야한다.
컬럼 > ALL : 가장 큰 값보다 크다. 컬럼 > MAX
컬럼 < ALL : 가장 작은 값보다 작다. 컬럼 < MIN
- FROM을 이용한 SUBQUERY
: FROM 절 상에 오는 서브쿼리로 VIEW처럼 작용한다.
- EXIST를 이용한 SUBQUERY
: 데이터의 존재 유무를 파악한다.