다음은 보기의 SQL문의 의미를 설명한 것이다. 바르게 설명한 것은?S… | [컴퓨터활용능력 1급 필기] 10년 2회차 기출문제 상세 페이지
1[컴퓨터활용능력 1급 필기] 10년 2회차
다음은 보기의 SQL문의 의미를 설명한 것이다. 바르게 설명한 것은?
SELECT 이름, 나이, 급여
FROM 사원
WHERE 부서='영업부' OR 부서='총무부'
ORDER BY 나이 ASC;
1
ORDER BY 절의 ASC는 내림차순으로 정렬하라는 것으로 지정하지 않아도 동일한 결과를 조회한다.
2
[사원] 테이블에서 부서가 영업부이거나 총무부인 사원의 이름, 나이, 급여를 검색한 후 나이를 기준으로 내림차순 정렬된 결과를 조회한다.
3
WHERE절은 WHERE 부서 IN ('영업부', '총무부')와 같이 지정해도 동일한 결과를 조회한다.4
[사원] 테이블에서 영업부와 총무부를 제외한 사원의 이름, 나이, 급여를 검색한 후 나이를 기준으로 오름차순 정렬된 결과를 조회한다.
해설
제시된 질의는 [사원] 테이블에서 이름·나이·급여 세 필드를 가져오되, WHERE 절로 부서='영업부' OR 부서='총무부' 인 행만 걸러내고 ORDER BY 나이 ASC 로 정렬한다.
같은 필드를 여러 값과 OR로 비교하는 조건은 IN 연산자로 바꿔 쓸 수 있다. 즉 WHERE 부서 IN ('영업부', '총무부') 로 지정해도 완전히 같은 결과가 나오며, 조건이 늘어날수록 IN 쪽이 간결하다.
나머지 설명이 틀린 이유도 정리해 두자. ASC는 오름차순이고 정렬 방식을 생략하면 기본값이 ASC이므로, 결과는 나이가 적은 사람부터 나온다. 내림차순으로 정렬하려면 DESC를 써야 한다. 또 이 조건은 영업부와 총무부를 포함하는 것이지 제외하는 것이 아니다. 제외하려면 NOT IN 이나 부서<>'영업부' AND 부서<>'총무부' 처럼 지정해야 한다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.