코딩일기/자격증

[정보처리기사] WHERE절에서 AND와 OR | SQL 문제 | 2021년 1회 정보처리기사 실기 기출 문제 풀이

jhy_2023 2024. 12. 17. 22:23
728x90
반응형

2021년 1회 정보처리기사 실기 기출문제

문제

다음 SQL문의 실행 결과를 쓰시오.

SELECT COUNT(*) 
FROM TABLEp
WHERE EMPNO > 100 
AND SAL >= 3000
OR EMPNO = 200;

< TABLEp 표 >

TABLEp

정답

1

반응형

해설

📌 SELECT COUNT(*)

  • COUNT(*)는 쿼리 결과로 반환된 행(Row)의 개수를 계산합니다.
  • 조건에 맞는 행이 몇 개인지 계산할 때 주로 사용됩니다.

📌 WHERE 조건

  • WHERE는 데이터를 필터링하는 데 사용됩니다. 조건에 맞는 행만 반환합니다.
  • 논리 연산자:
    • AND: 모든 조건이 참이어야 행이 반환됩니다.
    • OR: 조건 중 하나라도 참이면 행이 반환됩니다.
    • SQL에서 논리 연산자의 기본 처리 순서는 AND > OR입니다. 즉,  AND가 OR보다 우선적으로 처리됩니다. 괄호가 없으면 우선순위에 따라 해석됩니다.
  • EMPNO > 100 AND SAL >= 3000:
    • EMPNO가 100보다 크고 SAL이 3000 이상인 행을 선택합니다.
  • OR EMPNO = 200:
    • 위 조건이 만족되지 않아도 EMPNO가 200인 행을 선택합니다.
728x90

📌결과

  • 조건에 맞는 행 찾기 :
    • 행 1: EMPNO = 100, SAL = 1000
      • EMPNO > 100  거짓
      • SAL >= 3000  거짓
      • EMPNO = 200  거짓
      • 조건 결과: 거짓
    • 행 2: EMPNO = 200, SAL = 3000
      • EMPNO > 100  
      • SAL >= 3000  
      • AND 조건: 
      • OR EMPNO = 200  
      • 조건 결과: 
    • 행 3: EMPNO = 300, SAL = 1500
      • EMPNO > 100  
      • SAL >= 3000  거짓
      • AND 조건: 거짓
      • OR EMPNO = 200  거짓
      • 조건 결과: 거짓
  • 조건을 만족하는 행은 행 2(EMPNO = 200)입니다.
  • 만족하는 행의 개수가 1개이므로  쿼리 결과는 1입니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90
반응형