[데이터 베이스]6.SubQuery

손영민's avatar
Mar 09, 2025
[데이터 베이스]6.SubQuery
1.서브쿼리
-- 1.서브쿼리 (where) -- 중복해서 안만드는, 변경에 대처하기 힘들다. -- 연관관계를 가지게 테이블을 두개로 만든다. -- (다른 테이블을 참조하는 키를 FK) -- (내 테이블에서 행을 유일하게 결정하는 키 pk) -- DALLAS에 사는 직원을 출력해주세요. select * from emp where deptno = 20; select deptno from dept WHERE LOC ='DALLAS'; select * from emp where DEPTNO = (select DEPTNO from dept where LOC = 'DALLAS'); -- RESEARCH 부서의 직원을 출력해주세요 select * from dept where dname ='RESEARCH'; select * from emp where deptno = (select deptno from dept where dname = 'RESEARCH');
 
 
 
 
2.인라인 뷰
-- 2. 인라인뷰 (from절에 들어가는 subquery) select e.* from ( select ename, sal*12 '연봉' from emp ) e where e.연봉 = 9600; select * from ( select avg(sal) 'avg_sal' from emp group by DEPTNO ) e where e.avg_sal < 2000; -- having은 그룹된 결과만을 가지고 사용한다
 
 
3.스칼라 서브쿼리
-- 3. 스칼라 서브쿼리 (select 절에 있는 subquery) select * from emp order by deptno; select d.deptno, d.dname, d.loc, (select count(*) from emp where DEPTNO = d.deptno) '직원수' from dept d; select count(*) from emp where DEPTNO = 10;
notion image
 
 
Share article

sson17