시나공 IT
험에
오는 것만
부한다!

통합검색

1:1 질문하기

제목 SQL 하위 질의에서 ALL(SELECT문)은 어떨 때 사용하나요?
자격증 정보처리 기사 실기
도서/쪽 페이지 2023 시나공 정보처리기사 실기 / 0쪽
등록일 2024-04-20 조회 31
작성자 최*예

안녕하세요.

 

하위 질의에서 이미지와 같이 ALL문을 사용 할 때가 있고 아닐 때가 있던데 정확히 어떨 때 사용하는 건지 궁금합니다.

첨부파일
제목 답변입니다.
등록일 2024-04-20

안녕하세요 길벗수험서 운영팀입니다. 

 

기본질의가 있고 하위질의가 있을때 하위질의 결과값이 1개만 나올때를 "단일행 하위질의" 라고 하고

 

기본질의가 있고 하위질의가 있을때 하위질의 결과값이 여러개(2개이상) 나올때를 "다중행 하위질의" 라 합니다.

 

만약 단일행 하위질의로 작성을 했는데 하위질의의 결과가 2개이상 반환이 되면 오류가 발생합니다. 

 

 

 

 

"단일행 하위질의"의 경우 일반적으로 많이 사용되는것으로 하위질의의 결과를 기본질의의 조건을 비교할때

 

=, <, <=, >, >=, <> 등의 비교연산자를 이용하여 비교를 합니다.

 

 

"다중행 하위질의"의 경우 IN, ANY, ALL 등의 연산자를 사용합니다.

 

all : 서브쿼리의 결과에 존재하는 모든 값을 만족하는 조건을 의미하는데

 

< all 의 경우 비교 대상중 최소값보다 작은값을 찾아주고

 

> all 의 경우 비교 대상중 최대값보다 큰값을 찾아줍니다.

 

 

 

회원님께서 말씀하신 문제에서 조건문은 아래와 같습니다. 

 

WHERE 기본급 < ALL (SELECT 기본급 FROM 사원 WHERE 주소 = “망원동”); 

 

이 코드에서 하위질의를 실행하면 <사원> 테이블에서 ‘주소’가 “망원동”인 사원들의 ‘기본급’을 추출하는데

 

이때 결과값으로 120, 90  이렇게 2개의 값이 나옵니다.

 

이때 where문을 보면 기본급 < ALL 이렇게 되어있으니 

 

기본급의 모든(ALL) 범위인 120, 90보다 작은(<) 값을 찾아줘야 합니다. 

 

이때 하위질의 결과값 중 최소값이 90 이기 때문에  90보다 작은 기본급을 갖는 자료들을 찾아주는것입니다.

 

 

열심히 연습하셔서 합격하시길 기원하겠습니다. 

 

행복한 하루되세요 :)

첨부파일
  • 첨부파일 없음