모두CBT

아래의 SQL문을 실행한 결과는?[R1 테이블]학번이름학년학과주소100… | 21년-1회차-정보처리기사-필기 기출문제 상세 페이지

121년-1회차-정보처리기사-필기

아래의 SQL문을 실행한 결과는?

[R1 테이블]

학번이름학년학과주소
1000홍길동4컴퓨터서울
2000김철수3전기경기
3000강남길1컴퓨터경기
4000오말자4컴퓨터경기
5000장미화2전자서울

[R2 테이블]

학번과목번호학점점수
1000C100A91
1000C200A94
2000C300B85
3000C400A90
3000C500C75
3000C100A90
4000C400A95
4000C500A91
4000C100B80
4000C200C74
5000C400B85

[SQL 문]

SELECT 이름
FROM R1
WHERE 학번 IN
(SELECT 학번
FROM R2
WHERE 과목번호 = 'C100');
1
2

 
3
4

 
해설

부속 질의가 과목번호 C100을 수강한 학번을 모으고 바깥 질의가 그 학번의 이름을 뽑으므로, 결과는 홍길동·강남길·오말자 세 행짜리 이름 컬럼이다.

R2 테이블에서 과목번호가 C100인 행의 학번은 1000, 3000, 4000 세 개다.

R1 테이블에서 이 학번에 대응하는 이름은 1000이 홍길동, 3000이 강남길, 4000이 오말자다.

  • 김철수(학번 2000)는 C300만 수강해 부속 질의 결과에 학번이 없다.
  • 장미화(학번 5000)는 C400만 수강해 역시 제외되므로, 장미화가 들어가거나 다섯 명이 모두 나오거나 김철수가 포함된 결과는 옳지 않다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.