코딩일기/자격증

[정보처리기사] SQL | CROSS JOIN과 LIKE 연산자 이해 | 정보처리기사 실기 기출문제

jhy_2023 2024. 8. 6. 08:42
728x90
반응형

 

반응형

정보처리기사 실기 2021 기출문제 변형

문제

A테이블과 B테이블을 참고하여 SQL문의 실행 결과를 쓰시오.

SELECT COUNT(*) AS CNT
FROM A
CROSS JOIN B
WHERE A.NAME LIKE B.RULE;

정답

5

728x90

해설


1️⃣ CROSS JOIN

  • 테이블 A와 B를 결합하여 두 테이블의 모든 조합을 생성합니다.
  • 조합된 행의 개수는 A의 행 수×B의 행 수입니다.

CROSS JOIN은 두 테이블의 모든 가능한 조합을 만드는 작업입니다. A와 B의 CROSS JOIN 결과는 다음과 같습니다.
총 12개의 조합이 생성되었습니다. A의 각 행은 B의 모든 행과 조합됩니다.

2️⃣ WHERE 절의 조건 적용

  • 조합된 결과에서, A.NAME이 B.RULE에 지정된 패턴과 일치하는 행만 필터링합니다.
  • LIKE 연산자는 문자열 패턴 매칭에 사용됩니다:
    • %는 0개 이상의 임의의 문자열을 나타냅니다.
    • _는 임의의 한 문자를 나타냅니다.

🔎 LIKE 연산자 일치 검사

  • John과 J% (John은 J로 시작) → 일치
  • John과 A% (John은 A로 시작하지 않음) → 불일치
  • John과 B% (John은 B로 시작하지 않음) → 불일치
  • John과 %o% (John은 o를 포함) → 일치
  • Alice와 J% (Alice는 J로 시작하지 않음) → 불일치
  • Alice와 A% (Alice는 A로 시작) → 일치
  • Alice와 B% (Alice는 B로 시작하지 않음) → 불일치
  • Alice와 %o% (Alice는 o를 포함하지 않음) → 불일치
  • Bob과 J% (Bob은 J로 시작하지 않음) → 불일치
  • Bob과 A% (Bob은 A로 시작하지 않음) → 불일치
  • Bob과 B% (Bob은 B로 시작) → 일치
  • Bob과 %o% (Bob은 o를 포함) → 일치

조건을 만족하는 행들만 남겨보면 다음과 같습니다. 총 5개의 조합이 조건을 만족합니다.

3️⃣ COUNT 함수

  • COUNT(*) 함수는 선택된 행의 수를 계산합니다. 따라서 최종 쿼리는 5를 반환합니다.
SELECT COUNT(*) CNT 
FROM A 
CROSS JOIN B 
WHERE A.NAME LIKE B.RULE;

최종 결과


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

728x90
반응형