본문 바로가기

DB

[SQLD] 서브 쿼리, 집합 연산자

반응형

서브쿼리(SUB QUERY)

1. from 절에 사용하는 서브쿼리를 인라인 뷰(Inline View)라고 한다.

2. 메인쿼리에서 서브쿼리의 결과 컬럼을 쓸 수 없다. 

3. 서브쿼리는 메인쿼리의 컬럼을 모두 사용할 수 있다. 

4. 아래 쿼리문은 다중행 오류가 난다. 서브쿼리문 안에서 group by deptno를 사용해서 부서번호별로 max(sal)이 3개 나온다. sal가 최대값 3개 보다 크다? 말이 안되는 식이다. 서브쿼리 결과가 단일행이 나와야 연산이 가능하다. 

select*from emp
where sal>=(select max(sal) from emp group by deptno);

다중행 서브쿼리 문제

집합 연산자

1. UNION은 정렬기능을 포함한다. UNION ALL과 UNION의 연산순서를 비교하면 정렬기능이 없는 UNION ALL이 더 빠르다. 

 

2. 차집합을 구하는 연산자는? 오라클에서 MINUS.

 

SQL SERVER에서는 EXCEPT. 

반응형