1. 다음 SELECT 문장에서 Column Header로 출력되는 것은?
SELECT empno, ename “Employee’s Name”
FROM emp;
a. empno, employee’s name
b. Empno, Employee’s Name
c. EMPNO, Employee’s Name
d. EMPNO, EMPLOYEE’S NAME
<정답> C
<해설> 별칭을 사용할 때 대소문자, 여백, 띄워쓰기를 적용하기 위해서는 반드시
인용부호를 함께 사용해야 합니다.
<난이도> 3
2. 다음 문장을 실행했을 때 결과로 나올 수 있는 것은?
SELECT name
FROM s_customer
WHERE name LIKE ‘%X\_Y%’ ESCAPE ‘\’;
a. THE X\_Y SPORTS
b. THE X\&Y SPORTS
c. THE X&Y SPORTS
d. THE X_Y SPORTS
<정답> D
<해설> _(언더-바)를 데이터로 표현하기 위해서는 이스케이프 문자를 함께
사용해야 합니다.
<난이도> 3
3. 다음 문장을 실행한 결과로 맞는 것은?
SELECT ROUND(TO_DATE(‘25-MAY-98’, ‘DD-MON-YY’), ‘MONTH’)
FROM DUAL;
a. 01-JAN-98
b. 31-APR-98
c. 01-MAY-98
e. 31-MAY-98
f. 01-JUN-98
<정답> F
<해설> 날자 값을 년도를 기준으로 반올림하면 다음 년도의 1월 1일로
반올림되고, 월을 기준으로 반올림하면 다음 달의 1일로 반올림
됩니다.
<난이도> 3
4. 두 테이블 간에 self join을 하는 SELECT문인 것은?
a. SELECT e.ename, e.sal, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno;
b. SELECT e.ename, e.job, e.sal, s.grade
FROM emp e, salgrade s
WHERE e.sal BETWEEN s.losal AND s.hisal;
c. SELECT e.ename, e.sal, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno(+);
d. SELECT w.ename, m.ename
FROM emp w, emp m
WHERE w.mgr = m.empno;
<정답> D
<해설> SELF 조인이란 하나의 테이블을 두개의 테이블인 것 처럼 조인하는
방법을 의미합니다.
<난이도> 3
5. 다음 SQL 명령문에서 ERROR가 발생하는 행은?
a. SELECT ename, sum(sal) “Salary”
b. FROM emp
c. WHERE sal > 1000
d. ORDER BY 2;
<정답> A
<해설> 복합 함수는 관련없는 컬럼과 함께 사용할 수 없습니다.
<난이도> 3
6. 다음 subquery를 사용하는 문장 중 문법에 맞지 않게 작성된 것은?
a.SELECT * FROM emp
WHERE deptno = (SELECT deptno FROM emp
WHERE ename = ‘Smith’);
b. DELETE emp
WHERE ename = (SELECT ename FROM emp
WHERE empno = 200);
c. INSERT INTO emp
AS SELECT * FROM employee;
d. CREATE TABLE emp2
AS SELECT * FROM emp;
<정답> C
<해설> 서브쿼리를 이용한 INSERT문에는 AS절을 사용할 수 없습니다.
<난이도> 3
7. 다음 문장에서 error가 발생하는 행은(두 가지)?
CREATE TABLE 1998_orders
(id NUMBER(7),
customer_id NUMBER(7),
total NUMBER(11, 2),
filled CHAR(1)
CONSTRAINT ord_filled_sk CHECK(filled IN (‘Y’, ‘N’)),
CONSTRAINT ord_id_pk PRIMARY KEY(id, customer_id),
CONSTRAINT ord_total_nn NOT NULL(total));
a. CREATE TABLE 1998_orders
b. total NUMBER(11,2),
c. CONSTRAINT ord_filled_ck CHECK (filled IN (‘Y’, ‘N’)),
d. CONSTRAINT ord_id_pk PRIMARY KEY(id, customer_id),
e. CONSTRAINT ord_total_nn NOT NULL(total));
<정답> A, E
<해설> 테이블 명의 선두에는 숫자 값을 사용할 수 없습니다.
또한, NOT NULL 제약조건은 컬럼 레벨로만 사용할 수 있으며
테이블 레벨로는 정의할 수 없는 문법입니다.
<난이도> 4
8. 다음의 SQL 명령문을 순서대로 실행했을 때 database에 영구적으로 반영되는 문장은?
1. INSERT INTO emp (empno, ename, deptno)
VALUES (999, ‘Smith’, 10);
2 SAVEPOINT a;
3 DELETE emp
WHERE empno = 202;
4 SAVEPOINT b;
5 UPDATE emp
SET ename = ‘Clark’;
6 ROLLBACK TO SAVEPOINT a;
7 INSERT INTO emp (empno, ename, deptno)
VALUES (300, ‘Thomas’, 30);
8 SAVEPOINT c;
9 DELETE emp
WHERE deptno = 20;
10 COMMIT;
a. 1, 3, 5, 7, 9번
b. 1, 3, 5, 7번
c. 3, 5, 7, 9번
d. 1, 7, 9번
<정답> D
<해설> 6번에서 SAVEPOINT A 이후의 모든 트랜잭션을 롤백했기 때문에
3,4,5번 트랙잭션은 모두 취소됩니다.
<난이도> 4
9. 다음 문장이 하는 일은?
ALTER TABLE s_emp
MODIFY (title VARCHAR2(20));
a. s_emp table에 title column을 추가한다.
b. s_emp table에서 title column의 datatype을 변경한다.
c. s_emp table에 title column의 제약조건을 삭제한다.
d. s_emp table에 title column 의 제약조건을 추가한다.
<정답> B
<해설> ALTER TABLE 문법에서 MODIFY 문법은 테이블을 구조를 변경할 때
사용합니다.
<난이도> 3
10.다음 명령문을 실행하면 결과로 나오는 값은?
SELECT s_dept_id.CURRVAL
FROM SYS.dual;
a. s_dept_id sequence의 현재 값
b. s_dept_id cursor의 현재 값
c. s_dept_id index의 현재 값
d. dual table의 s_dep_id column의 값
<정답> A
<해설> CURRVAL, NEXTVAL 문법은 연속적인 번로를 부여해 주는 시퀀스를
생성할 때 사용합니다.
<난이도> 3
11.다음 문장이 하는 일은?
CREATE USER terry IDENTIFIED BY terry98;
a. terry라는 user의 password를 terry98로 변경한다.
b. terry라는 user의 이름을 terry98로 변경한다.
c. terry라는 user를 생성한다.
d. terry라는 user의 password를 생성한다.
<정답> C
<해설> TERRY라는 데이터베이스 계정에게 TIGER라는 암호를 부여하여 사용자를
생성합니다.
<난이도> 3
12.harry라는 user가 다음 문장을 실행했을 경우 다음 보기 중 옳은 것은?
GRANT UPDATE (ename, sal)
ON emp
TO scott, rich;
a. scott 는 harry의emp table의 ename, sal column 내용을 조회할 수 있다.
b. harry는 rich의 emp table의 ename, sal column 내용을 조회할 수 있다.
c. scott는 harry의 emp table의 ename, sal column 내용을 수정할 수 있다.
d. harry는 scott의 emp table의 ename, sal column 내용을 수정할 수 있다.
<정답> C
<해설> SCOTT는 HARRY의 EMP table의 ename, sal column 내용을 수정할 수
있습니다
<난이도> 3
13.scott가 실행한 다음 문장에 의한 효과로 맞는 것은?
CREATE SYNONYM emp
FOR ed.emp;
a. 모든 USER가 ed.emp 사용시 스키마를 명시할 필요가 없어진다.
b. scott가 ed.emp 사용시 스키마를 명시할 필요가 없어진다.
c. ed가 ed.emp 사용시 스키마를 명시할 필요가 없어진다.
d. 모든 USER가 ed.emp를 사용할 수 있게 된다.
<정답> B
<해설> SCOTT는 HARRY의 EMP table의 ename, sal column 내용을 수정할 수
있습니다
<난이도> 3
14.EXPLICIT CURSOR를 사용할 때, 각 행을 FETCH한 후 할 일은?
a. CURSOR를 OPEN한다.
b. CURSOR를 CLOSE한다.
c. CURSOR를 선언한다.
d. LOOP의 종료 조건을 초기화한다.
<정답> B
<해설> 커서 선언 à OPEN à FETCH à CLOSE
<난이도> 3
15. 예외 처리부에서 WHEN OTHERS를 사용할 수 있는 횟수는?
a. 1
b. 2
c. 3
d .한없이.
e. NONE
<정답> A
<해설> EXCEPTION절에는 OTHERS를 오직 한번만 정의할 수 있습니다.
<난이도> 3
16. 다음 중에서 PL-SQL 블록의 변수 유형이 아닌 것은 ?
a. SCLAR 변수
b. %TYPE 변수
c. GLOBAL 변수
d. COMPOSITE 변수
e. %ROWTYPE 변수
f. BIND 변수
<정답> C
<해설> PL-SQL에는 글로벌 변수를 정의하는 문법 유형이 없습니다.
<난이도> 3
17. PL/SQL 블록에서 매개변수를 전달하는 방법이 아닌 것은 ?
a. 위치에 의한 전달방법
b. 이름에 의한 전달방법
c. 데이터 타입에 의해 전달하는 방법
d. 여러 가지 기능을 함께 이용하여 전달하는 방법
<정답> C
<해설> 데이터 타입에 의한 전달방법은 없습니다.
<난이도> 3
18. 집합 연산자의 종류가 아닌 것은 ?
a. UNION 연산자
b. INTERSECT 연산자
c. MINUS 연산자
d. UNION ALL 연산자
e. JOIN 연산자
<정답> E
<해설> JOIN 연산자는 집합 연산자의 종류가 아닙니다.
<난이도> 3
19. DB 무결성(Integrity)을 보장해 줄 수 있는 방법이 아닌 은?
- 프로그램을 이용하는 방법
- 데이터베이스 트리거를 이용하는 방법
- 락(Lock) 기능을 이용하는 방법
- 제약조건을 이용하는 방법
<정답> C
<해설> 락 기능은 데이터의 일관성을 보장하기 위한 기법입니다.
<난이도> 4
20. SQL 언어의 단점을 모두 고르시오.
a. 비교문을 사용할 수 있다.
b. 반복문을 사용할 수 없다.
c. 문장이 실행될 때 마다 구문분석 된다.
d. 보안 기능을 설정할 수 있다.
e. SQL 언어는 표준화되어 있지 않다.
f. 네트워크의 트래픽을 줄여준다.
<정답> B, C
<해설> SQL 언어는 비교문을 사용할 수 없습니다.
보안 기능에 노출되어 있습니다.
ANSI에 의한 표준화되어 있습니다.
네트워크의 트래픽을 증가시킵니다.
<난이도> 4