다음 SQL 문장 중 구문이 옳은 것은? | [국회직 9급 컴퓨터일반] 17년 1회차 기출문제 상세 페이지
1[국회직 9급 컴퓨터일반] 17년 1회차
다음 SQL 문장 중 구문이 옳은 것은?
1
DELETE FROM STUDENT, ENROL WHERE SNO = 100;
2
SELECT COUNT(DISTINCT CNO) FROM ENROL WHERE SNO = 100;
3
SELECT SNO, SNAME FROM STUDENT WHERE DEPT = NULL;
4
INSERT STUDENT INTO VALUES(100, ‘홍길동’, 2, ‘전산과’)
5
SELECT DNO, SUM(SNAME) FROM STUDENT GROUP BY DNO WHERE SUM(SNAME)<100;
해설
구문이 옳은 문장은 SELECT COUNT(DISTINCT CNO) FROM ENROL WHERE SNO = 100;이다.
집계 함수 COUNT 안에 DISTINCT를 써서 중복을 제외한 CNO의 개수를 구하는 올바른 형식이다.
- DELETE FROM STUDENT, ENROL …: 표준 DELETE 문은 FROM 절에 테이블 하나만 지정한다.
- WHERE DEPT = NULL: NULL 비교는 IS NULL로 써야 하며, = 비교는 참이 되지 않는다.
- INSERT STUDENT INTO VALUES(…): 올바른 순서는 INSERT INTO STUDENT VALUES(…)이다.
- GROUP BY DNO WHERE SUM(SNAME)<100: WHERE는 GROUP BY 앞에 오고 집계 함수를 쓸 수 없으므로, 그룹 조건은 HAVING으로 써야 한다.
오류나 개정된 내용이 보이면 알려주세요