gambae programing

6. 서브 쿼리 본문

Database/Sql

6. 서브 쿼리

gambae 2022. 7. 6. 15:24

서브쿼리

다른 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