[데이터베이스 쿼리] 5. SubQuery

김건우's avatar
Feb 26, 2025
[데이터베이스 쿼리] 5. SubQuery
💡
  • 중복해서 안 만는다. 변경에 대처하기 힘들다.
  • 연관관계를 가지게 테이블을 두개로 만든다.
  • 다른 테이블에 참조하는 키를 FK
  • 내 테이블에서 행을 유일하게 결정하는 키 PK

1. 서브쿼리 (where)

-- 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 deptno from dept where dname = 'research'; select * from emp where deptno = (select deptno from dept where dname = 'research'); select profno from student where name = '김재수'; select name, position from professor where profno = (select profno from student where name = '김재수' );

2. 인 라인뷰 (from 절에 들어가는 subquery)

select ename, sal*12 '연봉' from emp where 연봉 = 9600; select * from ( select ename, sal*12 '연봉' from emp ) e where 연봉 = 9600; select * from ( select avg(sal) 'avg_sal' from emp group by deptno ) e where e.avg_sal < 2000;

3. 스칼라 서브쿼리 (select 절에 있는 서브쿼리)

select * from dept; 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;
Share article

gunwoo