다음 SQL문을 실행한 결과는? (단, 출력 행 순서는 무방)1) 테이… | [멀티미디어콘텐츠제작전문가 필기] 16년 2회차 기출문제 상세 페이지
1[멀티미디어콘텐츠제작전문가 필기] 16년 2회차
다음 SQL문을 실행한 결과는? (단, 출력 행 순서는 무방)
1) 테이블 : 성적
| 학번 | 과목번호 | 과목이름 | 학점 | 점수 |
|---|---|---|---|---|
| 10 | A10 | 컴퓨터구조 | A | 91 |
| 20 | A20 | DB | A+ | 99 |
| 30 | A10 | 컴퓨터구조 | B+ | 89 |
| 30 | A20 | DB | B | 85 |
| 40 | A20 | DB | A | 94 |
| 40 | A30 | 운영체제 | B- | 89 |
| 50 | A30 | 운영체제 | B | 88 |
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 는 둘 다 남는다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.



