공부하기싫어
article thumbnail

오늘 SQL 기본 문제를 모두 풀고, 오답노트 까지 마무리 하고

주말동안 50페이지 분량의 SQL 활용 단원을 끝내봐야겠다

 

 

1. 다음 중에서 관계형 DB 집합 연산이 아닌 것은?

① 합집합

② 곱집합

③ 선택 집합

④ 교집합

 

내가 고른 답 : 3

정답 : 3

해설 : 관계형 DB 집합 연산에서는 합집합, 차집합, 교집합, 곱집합이 있다.

 

 

2. 다음 중에서 관계형 DB의 관계 연산 중에서 공통된 속성으로 새로운 릴레이션을 생성하는 것은?

① 선택 연산

② 투영 연산

③ 결합 연산

④ 나누기 연산

 

내가 고른 답 : 3

정답 : 3

해설 : 결합 연산은 여러 릴레이션의 공통된 속성을 사용해서 새로운 릴레이션을 만들어 낸다.

 

 

 

3. SQL의 종류 중에서 TCL 에 해당되는 것은?

① CREATE TABLE

② COMMIT

③ SELECT

④ ALTER TABLE

 

내가 고른 답 : 2

정답 : 2

해설 : TCL은 트랜잭션을 제어하는 명령어로 COMMIT과 ROLLBACK이 있다.

 

 

 

4. 트랜잭션의 특징 중에서 COMMIT 이 완료되면 저장되었음을 보장해야하는 특성은 무엇인가?

① 원자성

② 일관성

③ 고립성

④ 영속성

 

내가 고른 답 : 4

정답 : 4

해설 : 영속성은 트랜잭션이 그 실행을 성공적으로 완료하면 그 결과는 영구적 보장이 되어야 한다.

 

 

 

5. SQL 실행 순서로 올바른 것은?

① parsing - execution - fetch

② parsing - fetch - execution

③ execution - parsing - fetch

④ execution - fetch - parsing

 

내가 고른 답 : 1

정답 : 1

해설 : SQL은 PARSING-EXECUTION-FETCH 순서로 실행된다.

 

 

 

6. 다른 테이블의 기본키를 참조하는것을 무엇이라고 하는가?

① 기본키

② 후보키

③ 슈퍼키

④ 외래키

 

내가 고른 답 : 4

정답 : 4

해설 : 외래키는 다른 테이블의 기본키를 참조한다.

 

 

 

7. A 테이블의 A1칼럼을 B테이블에서 참조하고 있다. 이때 A 테이블의 데이터를 삭제할 때 연속적으로 B 테이블의 데이터도 삭제하려면 테이블 생성 시에 어떤 옵션을 사용해야 하는가?

① UPDATE Option

② ON UPDATE CASCCADE

③ DELETE Option

④ ON DELETE CASCADE

 

내가 고른 답 : 4

정답 : 4

해설 : ON DELETE CASCADE 옵션은 참조한 테이블의 데이터까지 자동으로 삭제해서 참조 무결성을 보장한다.

 

 

 

8. EMP 테이블의 이름을 NEW_EMP테이블로 변경하는 SQL문을 쓰시오.

내가 고른 답 : ALTER TALBE NAME NEW_EMP;

정답 : ALTER TABLE EMP RENAME TO NEW_EMP;

해설 : 

 

 

 

9. EMP 테이블에 age 칼럼을 추가하시오 (age 칼럼은 숫자형 2자리이고 기본값은 1이다)

내가 고른 답 : alter table emp add column(age number(2) default(1));

정답 : ALTER TABLE EMP ADD (age number(2) default 1);

해설 : 

 

 

 

10. 다음은 view 에 대한 설명이다. 올바르지 않은 것은?

① 테이블에서 유도된 가상의 테이블이다.

② view 를 사용하면 데이터 관리가 간단해진다.

③ 삽입, 수정, 삭제에 제약이 없다.

④ 보안 기능을 제공한다.

 

내가 고른 답 : 3

정답 : 3

해설 : view는 삽입, 수정, 삭제 시 제약이 발생한다.

 

 

 

 

11. INSERT 문의 성능을 향상시키기 위해서 Buffer Cache 의 기록을 생략하는 옵션은 무엇인가?

내가 고른 답 : 몰?루

정답 : Nologging 옵션

해설 : nologging 옵션은 테이블에 데이터를 빠르게 입력하기 위해서 buffer cache의 기록을 생략한다.

 

 

 

12. emp 테이블의 구조는 삭제하지 않고 모든 데이터를 삭제하는 SQL문을 작성하시오 (단, 테이블의 데이터를 모두 삭제 후 테이블의 공간은 초기화해야 한다.)

내가 고른 답 : 이것도 몰?루

정답 : TRUNCATE TABLE EMP;

해설 : TUNCATE TABLE EMP; 는 테이블의 모든 데이터를 삭제하고 테이블 공간을 초기화 한다.

 

 

 

13. 다음 중 문자열 결합에 사용되는 것은?

① =

② ||

③ &&

④ -

 

내가 고른 답 : 2

정답 : 2

해설 : 문자열 결합은 CONCAT 함수 혹은 '||'을 사용할 수 있다.

 

 

 

14. 다음과 같이 조회된 경우 올바른 것은? (단, EMP 칼럼은 EMPNO, ENAME, DEPTNO, MGR, JOB, SAL 로 이루어져 있다.)

① SELECT DISTINCT ENAME FROM EMP;

② SELECT * FROM EMP ORDER BY EMPNO ASC;

③ SELECT * FROM EMP ORDER BY ENAME DESC;

④ SELECT * FROM EMP ORDER BY MGR ASC, SAL ASC;

 

내가 고른 답 : 3

정답 : 3

해설 : ENAME으로 내림차순 한다

 

 

 

15. 칼럼의 값이 중복된 경우 중복을 제거해서 조회하는 것은?

① ALL

② DISTINCT

③ UNIQUE

④ DESC

 

내가 고른 답 : 2

정답 : 2

해설 : DISTINCT는 칼럼명 앞에 지정하여 중복된 데이터를 한 번만 조회하게 한다.

 

 

 

16. 다음은 NULL에 대한 설명이다. 올바르지 않은 것은?

① NULL은 모르는 값을 의미한다.

② NULL은 값의 부재를 의미한다.

③ NULL과 숫자 혹은 날짜를 더하면 문자가 된다.

④ NULL과 모든 비교는 알수 없음을 반환한다.

 

내가 고른 답 : 1

정답 : 3

해설 : NULL과 숫자 혹은 날짜를 더하면 NULL이 된다.

 

 

 

17. GROUP BY 시에 조건을 서술하는 문은?

① WHERE

② GROUP BY

③ HAVING

④ ORDER BY

 

내가 고른 답 : 3

정답 : 3

해설 : GROUP BY 시에 조건을 서술하는 것은 HAVING구 이다

 

 

 

18. COUNT(*)와 COUNT(MGR)의 근본적 차이점은 무엇인가?

① 동일한 행 수를 되돌린다. 따라서 차이점이 없다.

② NULL 값을 제외하는지 여부이다.

③ 행 수의 차이다.

④ 성능 차이이다.

 

내가 고른 답 : 2

정답 : 2

해설 : COUNT(*)은 NULL 값을 포함한 행수를 계산하고 COUNT(MGR)은 NULL을 제외한 행 수를 계산한다.

 

 

 

19. 날짜형 데이터를 문자로 변혼할 때 사용하는 변환 함수는 무엇인가?

① TO_NUMBER()

② TO_CHAR()

③ TO_DATE()

④ TO_FORMAT

 

내가 고른 답 : 2

정답 : 2

해설 : TO_CHAR 는 숫자 혹은 날짜, 문자를 지정된 포멧으로 변환한다

 

 

 

20. 다음의 SQL 결과는 무엇인가?

SELECT CEIL(10.9) FROM DUAL;

① 0

② 10

③ 11

④ 12

 

내가 고른 답 : 2

정답 : 3

해설 : CEIL 함수는 숫자보다 크거나 같은 최소의 정수를 돌려준다.

 

 

 

21. 다음 A와 B로 올바른 것은?

① A-ASC, B-ASC

② A-ASC, B-DESC

③ A-DESC, B-NULL

④ A-DESC, B-ASC

 

내가 고른 답 : 4

정답 : 4

해설 : 조회된 데이터를 확인해보면 ENAME 으로 내림차순(DESC)하고 SAL 로 오름차순(ASC)한다. 그런데 위의 예에서는 SAL 데이터가 ENAME 별로 한 건씩 있기 때문에 오름차순으로 하던지 내림차순으로 하던지 결과는 동일하다. NULL 값으로 하면 SQL 조회가 안된다

 

 

 

22. TCL 문 2개와 DCL 문 2개를 쓰시오

내가 고른 답 : COMMIT, SAVEPOINT - ORDER BY, GROUP BY

정답 : TCL은 COMMIT, ROLLBACK 이고 DCL 은 GRANT 와 REVOKE 이다.

해설 : 

 

 

 

23. 다음 SQL 문의 실행 결과는?

SELECT (12/NULL)*2 FROM DUAL;

① 17

② 18

③ NULL

④ 0

 

내가 고른 답 : 3

정답 : 3

해설 : NULL 값과 산술 연산을 하면 NULL이 된다.

 

 

 

24. 트랜잭션은 자기의 연산에 대하여 전부(all) 또는 전무(nothing) 실행만이 존재하며, 일부 실행으로는 트랜잭션의 기능을 가질 수 없다는 트랜잭션의 특성은?

① Atomicity

② Isolation

③ Consistency

④ Durability

 

내가 고른 답 : 2

정답 : 1

해설 : Atomicity(원자성) 은 모든 트랜잭션은 완전히 처리되거나 아니면 전혀 영향이 없어야 하는 특성이다.

 

 

 

25. 다음의 SQL 문 실행 결과로 올바른 것은?

SELECT COALESCE(NULL, '2', '1') FROM DUAL;

① 0

② 1

③ 2

④ 3

 

내가 고른 답 : 3

정답 : 3

해설 : COALESCE 문은 NULL이 아닌 첫번째 인자값을 반환한다.

 

 

 

26. 다음의 SQL 문 실행 결과로 올바른 것은?

SELECT ROUND(38.5244) FROM DUAL;

① 38

② 39

③ 40

④ 38.5

 

내가 고른 답 : 4

정답 : 2

해설 : ROUND 함수는 반올림하여 반환한다. 따라서 39가 반환된다.

 

 

 

27. EMP 테이블에 DEPT 테이블의 기본키 DEPTNO 칼럼을 참조하는 외래키 FK_DEPT를 추가하고자 한다. 적절한 ALTER TABLE 문을 작성하시오

내가 고른 답 : ALTER TABLE EMP ???

정답 : ARTER TABLE EMP ADD CONSTRAINT FK DEPT

FOREIGN KEY (DEPTNO) REFERENCES DEPT (DEPTNO);

해설 : 

 

 

 

28. <보기>의 SQL 문을 보고 'Limbest, 기술사' 로 나오게 SQL 문을 수정하시오

<보기>

SELECT 'LimBest', '' FROM DUAL

UNION ALL

SELECT '', '기술사' FROM DUAL;

내가 고른 답 : ???

정답 : SELECT MAX(A), MAX(B) FROM

(SELECT 'Limbest' A, '' B FROM DUAL

UNION ALL

SELECT '' A, '기술사' B FROM DUAL);

해설 : SELECT MAX(A), MAX(B) FROM - 서브 쿼리와 MAX 함수를 사용해서 SQL문을 수정해야 한다