이전페이지

묻고 답하기

정보처리 기사 실기 2023 시나공 정보처리기사 실기
제목 SQL 하위 질의에서 ALL(SELECT문)은 어떨 때 사용하나요?
0쪽
등록일 2024.04.20
작성자 최*예
조회수 52

안녕하세요.

 

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

첨부파일 하위질의.jpg
답변입니다.
등록일 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보다 작은 기본급을 갖는 자료들을 찾아주는것입니다.

 

 

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

 

행복한 하루되세요 :)

첨부파일 없음