책 내용 질문하기
SQL 하위 질의에서 ALL(SELECT문)은 어떨 때 사용하나요?
도서
2023 시나공 정보처리기사 실기
페이지
0
조회수
174
작성일
2024-04-20
작성자
최*예
첨부파일

안녕하세요.

 

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

답변
2024-04-20 18:36:43

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

 

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

 

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

 

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

 

 

 

 

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

 

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

 

 

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

 

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

 

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

 

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

 

 

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

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

 

행복한 하루되세요 :)

  • 관리자
    2024-04-20 18:36:43

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

     

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

     

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

     

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

     

     

     

     

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

     

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

     

     

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

     

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

     

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

     

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

     

     

     

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

     

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

     

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

     

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

     

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

     

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

     

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

     

     

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

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.