서브쿼리

Hyuntae Jung·2022년 7월 26일
0

MS SQL

목록 보기
19/41
post-thumbnail

1. 서브 쿼리

: 메인쿼리문 안의 쿼리문이다.
쿼리문 안에 쿼리문이 들어가는 것(nesting)으로 복잡한 쿼리문을 하나의 쿼리문의 처리하기 위하여 사용한다.

Nesting: 메모리가 허용하는 한 무제한으로 중첩할 수 있다

SELECT deptNo 
  FROM employee
WHERE empName = '김관우';

SELECT depName
  FROM department
WHERE deptNo = ( SELECT deptNo 
							  FROM employee
							 WHERE empName = '김관우');

위와 같이 서브쿼리를 사용하면 depNo20에 해당하는 depName인사부를 추출할 수 있다.

2. WHERE절과 집계함수

SELECT empName, salary
  FROM employee
WHERE salary > AVG(salary)

-- 평균 급여보다 많이 받는 사원을 조회
SELECT empName, salary
  FROM employee
-- where salary > avg(salary); 집계함수는 where절에서 사용할 수 없다.
WHERE salary > (SELECT AVG(salary)
							FROM employee);

위와 같이 집계함수 단독으로는 WHERE절 안에 입력할 수 없으므로, 서브쿼리로 작성한다.

3. 다중행 서브쿼리

: 서브쿼리에서 조회되는 결과값이 하나이상의 행일 때 사용하는 쿼리이다.
다중행 서브쿼리는 다중행 연산자와 함께 사용한다.

다중행 연산자

  • IN : 메인 쿼리의 비교조건이 서브쿼리의 결과 중에 하나라도 일치하면 참
  • ALL : 메인 쿼리의 비교조건이 서브쿼리의 결과와 모든 값이 일치하면 참
  • ANY, SOME : 메인 쿼리의 비교조건이 서브쿼리의 검색 결과와 하나 이상이 일치 하면 참
  • EXISTS : 메인 쿼리의 비교조건이 서브쿼리의 결과 중에서 만족하는 값이 하나라도 존재하면 참

강의: ms sql 2014 제대로 배우기 1

0개의 댓글