모두CBT

다음 SQL문을 실행한 결과는? (단, 출력 행 순서는 무방)1) 테이… | [멀티미디어콘텐츠제작전문가 필기] 16년 2회차 기출문제 상세 페이지

1[멀티미디어콘텐츠제작전문가 필기] 16년 2회차

다음 SQL문을 실행한 결과는? (단, 출력 행 순서는 무방)

1) 테이블 : 성적

학번과목번호과목이름학점점수
10A10컴퓨터구조A91
20A20DBA+99
30A10컴퓨터구조B+89
30A20DBB85
40A20DBA94
40A30운영체제B-89
50A30운영체제B88

2) SQL 문

SELECT 과목이름, 점수
FROM 성적
WHERE 점수 >= 90
UNION
SELECT 과목이름, 점수
FROM 성적
WHERE 과목이름 LIKE ‘컴퓨터%’

1
2
3
4
해설

UNION 으로 두 조회 결과를 합치면 컴퓨터구조 89, 컴퓨터구조 91, DB 94, DB 99 의 4개 행이 나온다.

앞의 SELECT 는 점수가 90 이상인 행을 뽑으므로 컴퓨터구조 91, DB 99, DB 94 가 나오고, 뒤의 SELECT 는 과목이름이 '컴퓨터'로 시작하는 행을 뽑으므로 컴퓨터구조 91, 컴퓨터구조 89 가 나온다.

UNION 은 두 결과를 합치면서 완전히 같은 행을 하나로 줄인다. 양쪽에 모두 들어 있는 (컴퓨터구조, 91) 이 한 번만 남아 최종 결과는 (컴퓨터구조, 89), (컴퓨터구조, 91), (DB, 94), (DB, 99) 의 4행 이 된다.

중복을 제거하지 않는 UNION ALL 이었다면 5행이 됐을 것이고, 점수가 다르면 서로 다른 행이므로 DB 94 와 DB 99 는 둘 다 남는다.

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