gambae programing
6. 서브 쿼리 본문
서브쿼리
다른 select문의 절에 삽입된 select 문
- 서브쿼리 (내부 질의)는 기본 질의 실행 전에 한 번 실행
- 서브 쿼리의 결과는 메인쿼리에 사용
사용지침
- 서브 쿼리는 괄호로 묶어야 함
- 비교 조건의 오른쪽에 서브 쿼리를 넣음
- 단일 행 서브 쿼리에는 단일 행 연산자를 사용 , 다중 행 서브 쿼리에는 다중 행 연산자를 사용
- 서브쿼리의 결과값과 받아주는 메인쿼리의 컬럼의 데이터 타입이 같아야함
- having 절에도 서브 쿼리 사용 가능
다중 행 서브 쿼리
- 여러 행을 반환
- 여러 행 비교 연산자를 사용
연산자 | 의미 |
in ( =any 와 동일 ) | 서브 쿼리의 데이터의 값과 동일한 값 |
column < any (서브 쿼리) | 서브 쿼리의 데이터의 최대값보다 작은 컬럼의 데이터 값 |
column > any (서브 쿼리) | 서브 쿼리의 데이터의 최소값보다 큰 컬럼의 데이터 값 |
column < all (서브 쿼리) | 서브 쿼리의 데이터의 최소값보다 작은 컬럼의 데이터 값 |
column > all (서브 쿼리) | 서브 쿼리의 데이터의 최대값보다 큰 컬럼의 데이터 값 |
select department_id,last_name,salary // 부서번호 , 이름 , 급여를 출력한다 >> 부서별이기 때문에 12행이 나와야 한다
from employees
where (department_id,salary) in // 서브쿼리에서 나오는 데이터 값이 여러가지 이고 같은걸 찾아야돼서 in 연산자 사용
(select department_id,max(salary) // where 컬럼 자리에 두개의 값 넣기 가능
from employees
where department_id is not null
group by department_id) // 부서별 최고금액을 출력해주는 서브 쿼리
order by department_id // 오름차순으로 정렬
'Database > Sql' 카테고리의 다른 글
8. 테이블 생성 및 관리 (0) | 2022.07.11 |
---|---|
7. 데이터 조작 (0) | 2022.07.07 |
5. 그룹 함수를 사용한 데이터 집계 (0) | 2022.07.05 |
4. 여러 테이블의 데이터 표시 (0) | 2022.07.03 |
3. 데이터 제한 및 정렬 (0) | 2022.06.29 |
Comments