코딩일기/자격증

[정보처리기사] SQL | 서브쿼리(Subquery) & IN 연산자 | 2024년 1회 정보처리기사 실기 기출문제

jhy_2023 2025. 4. 5. 21:45
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
반응형