코딩일기/자격증
[정보처리기사] 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
반응형