모두CBT

다음 중 성적(학번, 이름, 학과, 점수) 테이블의 레코드 수가 10개… | [컴퓨터활용능력 1급 필기] 15년 1회차 기출문제 상세 페이지

1[컴퓨터활용능력 1급 필기] 15년 1회차
다음 중 성적(학번, 이름, 학과, 점수) 테이블의 레코드 수가 10개, 평가(학번, 전공, 점수) 테이블의 레코드 수가 5개일 때, 아래 SQL의 결과에 대한 설명으로 옳은 것은?
SELECT 학번, 학과, 점수 FROM 성적 UNION ALL
SELECT 학번, 전공, 점수 FROM 평가 ORDER BY 학번
1
쿼리 실행 결과의 필드 수는 모든 테이블의 필드를 더한 개수만큼 검색된다.
2
쿼리 실행 결과의 총 레코드 수는 15개이다.
3
쿼리 실행 결과의 필드는 평가.학번, 평가.전공, 평가.점수이다.
4
쿼리 실행 결과는 학번의 내림차순으로 정렬되어 표시된다.
해설

UNION 계열 연산은 두 SELECT 문의 결과를 세로로 이어 붙인다. 이때 결과의 필드 구성은 첫 번째 SELECT 문을 따르며, 여기서는 성적 테이블에서 고른 학번, 학과, 점수 세 개가 열 이름이 된다. 두 번째 문의 '전공' 값은 두 번째 열 자리에 채워질 뿐 별도의 열로 추가되지 않으므로, 두 테이블의 필드를 모두 더한 만큼 나오지도 않고 평가 테이블의 필드명이 표시되지도 않는다.

레코드 수는 ALL 키워드가 결정한다. UNION 만 쓰면 중복 행을 제거하지만 UNION ALL 은 중복을 그대로 두고 전부 이어 붙이므로, 성적 10개와 평가 5개를 합한 15개가 그대로 결과가 된다.

마지막의 ORDER BY 학번 은 합쳐진 전체 결과를 학번 기준으로 정렬하는데, 정렬 방향을 지정하는 DESC 가 없으므로 기본값인 오름차순 으로 표시된다.

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