#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 |