서브쿼리
서브쿼리란 쿼리 안에 쿼리가 들어가 있는 형태이다.
주로 where, select, from 절에서 사용된다.
서브쿼리의 특징으로는
- 내부에 또 다른 SELECT문을 포함 → (SELECT ... FROM ... WHERE ...)
- 메인 쿼리의 일부 데이터를 제공 (보조 역할)
- 단일 값 또는 다중 행 반환 가능
- 독립적으로 실행될 수 있음 (단, 상관 서브쿼리는 예외)
-- 각 부서명과 그 부서의 인원이 몇 명인가?
select
deptname
, (select count(deptno) from emp where deptno = d.deptno) as cnt
from dept d;
테이블 뒤에 붙는 d 는 별칭이다. 이 쿼리문에서는 emp 테이블에도 deptno가 있고,
dept 테이블에도 deptno가 있기 때문에, 어느 테이블에 있는 deptno인지를 구분할 필요가 있기 때문에 테이블 뒤에 알파벳으로 별칭을 지정한다.
위에 쿼리문은 '상하관계 쿼리' 이다.
상하관계 쿼리란 서브쿼리에서 추출한 값을 하나의 컬럼처럼 가상으로 보여준다.
위 쿼리문은 다른 테이블에 있는 것을 계산하여 하나의 테이블에서 보여주는 것이다.
서브쿼리의 결과물이 메인쿼리 결과물에 일부처럼 소속되는 것을 상하관계 쿼리라 한다.
'개발 > DB(MariaDB)' 카테고리의 다른 글
9. DB - (EXISTS, ANY, ALL) (0) | 2025.03.17 |
---|---|
8. DB - (JOIN) (0) | 2025.03.17 |
6. DB - (key) (0) | 2025.03.17 |
5. DB - (트랜잭션) (0) | 2025.03.17 |
4. DB - (DML-2, ORDER BY, GROUP BY, HAVING) (0) | 2025.03.17 |