728x90
반응형
2024년 1회 정보처리기사 실기 기출문제
문제
다음 SQL 문을 실행했을 때의 결과는?


SELECT
B
FROM
R1
WHERE
C IN (SELECT C FROM R2 WHERE D="k");
정답
B
a
b
반응형
해설
1️⃣ 서브쿼리 (Subquery)와 메인쿼리 (Main Query)
- SQL에서 서브쿼리(Subquery)는 쿼리 안에 포함된 또 다른 쿼리로, 메인쿼리(Main Query)가 실행되기 전에 먼저 수행되어 그 결과를 메인쿼리에 전달합니다.
- 주로 WHERE, FROM, SELECT 절에서 사용되며, 복잡한 조건이나 필터링을 효율적으로 처리할 수 있게 해줍니다.
- 서브쿼리는 괄호 ()로 감싸며,
- 메인쿼리가 사용할 데이터를 먼저 추출하는 데 사용됩니다.
- 결과적으로, 메인쿼리의 조건을 동적으로 구성할 수 있도록 도와줍니다.
-- 서브쿼리 (Subquery)
SELECT C FROM R2 WHERE D="k"
-- 메인쿼리 (Main Query)
SELECT B FROM R1 WHERE C IN (...)
728x90
2️⃣ IN 연산자 (IN Operator)
컬럼명 IN (값1, 값2, 값3, ...)
-- 예시
SELECT 이름 FROM 학생
WHERE 학과코드 IN (SELECT 코드 FROM 학과 WHERE 계열 = '공학');
- IN 연산자는 SQL에서 특정 컬럼의 값이 지정된 여러 값 중 하나와 일치하는지를 비교할 때 사용하는 조건 연산자입니다.
- 여러 개의 값 중 하나라도 일치하면 조건을 만족합니다.
- 특히 서브쿼리와 함께 사용할 때 유용하며, 복잡한 조건을 쉽게 처리할 수 있습니다.
- '공학' 계열에 속한 학과의 학생을 찾는 쿼리입니다.
SELECT B
FROM R1
WHERE C IN (SELECT C FROM R2 WHERE D = 'k');
- 서브쿼리 (SELECT C FROM R2 WHERE D = 'k')가 먼저 실행되어
D = 'k'인 행의 C 값들을 추출합니다.
=> 결과: 'x', 'y' - 메인쿼리는 R1 테이블에서 C가 'x' 또는 'y'인 행의 B 값을 가져옵니다.
(C속성의 값이 서브쿼리 결과값과 동일한 값의 B값을 가져옵니다)
=> 결과: 'a', 'b'
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
728x90
반응형