2011년 6월 1일 수요일

Subquery

Subquery
질의문 내에 독립적인 질의문 또는 연관된 질의문이 존재하는 것

Subquery의 종류
1. Nested Subquery
서브쿼리가 WHERE 절에서 메인 쿼리와 는 독립적으로 사용된 경우
예)
SELECT empno, ename
FROM emp
WHERE deptno = (SELECT deptno FROM dept WHERE dname='sales');

2. Inline View
질의문의 FROM 절에 뷰처럼 사용되는 별칭을 가진 서브쿼리

3. Scalar Subquery
SELECT 절 및 GROUP BY, HAVING, ORDER BY, WHERE 절에 사용되어 하나의 조건 집합 처럼 사용, 서브 쿼리의 결과 값을 마치 컬럼이나 함수처럼 사용하는 기능
예)
SELECT empno, ename, (SELECT dname FrOM dept WHERE deptno = A.deptno) danme
FROM emp A;

4. Correlated Subquery
서브쿼리가 WHERE 절에 사용되면서, 본 질의무과 서로 연관되어 수행된다면 Correlated Subquery
예)
SELECT empno, ename, sal, deptno
FROM emp e
WHERE SAL = (SELECT AVG(sal) FROM emp WHERE deptno = e.deptno);

5. Exists Subquery
단지 행의 존재 유,무만 확인하면 되는 경우. 주어진 조건을 만족하는 첫 번째 레코드를 만나면 스캔을 멈춤
예)
SELECT 1 INTO :CNT FROM DUAL
WHERE EXISTS
(SELECT 'x' FROM item_tab WHERE dep = '101');

댓글 없음:

댓글 쓰기

시스템 부팅시 도커 컨테이너 자동 실행

Docker 컨테이너를 운용중인 시스템이 Reboot 되버리면 컨테이너가 자동으로 올라오지 않아 불편해서 시스템 리붓시 컨테이너를 자동으로 시작되게 init 데몬에 등록하기로 했습니다. 서버는 Ubuntu 17.10 Docker는 17.0...