#1. 서브쿼리(SubQuery)

1. 서브쿼리의 개념

1) 서브쿼리란?

  • SQL안의 SQL을 사용하는 형태.
  • 하나의 SQL 명령문의 처리 결과를 다른 SQL 명령문에 전달하기 위해 두 개 이상의 SQL문을 하나의 SQL문으로 연결한 형태이다.
  • 검색조건을 다른 결과 집합에서 찾기 위해 사용한다.
  • 서브쿼리를 포함한 SQL문을 메인쿼리 라고 한다.
  • 서브쿼리는 SELECT 문의 시작과 끝에 ( )를 묶어서 메인쿼리와 구분한다.
SELECT 컬럼이름 
FROM 테이블이름 
WHERE 컬럼연산자 (SELECT ...)

 

2) 종류

종류 설명
단일 행 서브쿼리 단 하나의 검색 결과만을 반환하는 형태.
서브쿼리를 검색결과로 사용하기 위해 비교연산자가 사용된다.
다중 행 서브쿼리 하나 이상의 검색결과를 반환하는 형태.
서브쿼리를 검색결과로 사용하기 위해 IN 연산자가 사용된다.

 

2. 단일 행, 다중 행 서브쿼리

1) 단일 행 서브쿼리 

- 해당 교수와 같은 직급의 교수에 대한 이름, 직급을 조회

- 1학년 학생 중에서 키가 전체 학생의 평균키를 초과하는 학생의 이름, 학과번호, 학년, 키를 조회하시오. (집계 함수와 함께 사용)

- 해당 학생과 같은 학과에 재학중인 학생의 이름과 소속학과 이름을 조회하시오. (JOIN과 함께 사용)

 

2) 다중 행 서브쿼리

  • 서브쿼리의 결과가 여러 건인 경우

- 급여를 300만원 초과로 받는 교수에게 지도 받는 학생들의 학번, 학년, 이름을 조회하시오.

 

3) 예제

- 아이디가 'jun123'인 학생과 같은 학년인 학생의 학번, 이름, 학년을 조회 하시오.

- 101번 학과 학생들의 평균 몸무게 보다 몸무게가 적은 학생의 이름, 학과번호, 몸무게를 조회하시오.

- '이광훈' 학생과 같은 학과의 학생들에 대한 평균 몸무게 보다 몸무게가 적게 나가는 학생들의 이름, 몸무게, 소속학과이름, 담당교수 이름을 조회하시오.

- 20101번 학생과 같은 학년이고, 20101번 학생의 키보다 큰 키를 갖는 학생의 이름, 학년, 키를 조회하시오.

- 학과 이름에 '공학'이라는 단어를 포함하고 있는 학과에 재학중인 학생의 학번, 학과 이름, 학년, 학생이름을 조회하시오

'국비수업 > MySQL' 카테고리의 다른 글

[MySQL] 데이터베이스 관리  (0) 2022.06.21
[MySQL] 입력, 수정, 삭제  (0) 2022.06.13
[MySQL] 그룹 조회 / 조인(JOIN)  (0) 2022.06.10
[MySQL] SQL함수  (0) 2022.06.09
[MySQL] SQL 연산자 / 정렬, 부분조회  (0) 2022.06.09

+ Recent posts