SQLD 모의고사 9회
50문항 · 제한 시간 90분. 다 풀면 과목별 점수와 합격 여부, 문제마다 해설을 보여 줘요.
1. 다음 중 데이터 모델링의 3요소와 관련 용어에 대한 설명으로 가장 적절하지 않은 것은?
- 데이터 모델링의 3요소는 엔터티(Things), 속성(Attributes), 관계(Relationships)이다.
- 엔터티 타입에 대응하는 개별 단위는 엔터티 인스턴스(어커런스)이다.
- 속성에 대응하는 개별 단위는 속성값이다.
- 관계에 대응하는 개별 단위는 도메인(Domain)이라고 부른다.
2. 엔터티는 원칙적으로 다른 엔터티와 최소 1개 이상의 관계를 가져야 하지만, 예외적으로 관계를 생략하기도 한다. 관계 생략이 허용되는 예외로 가장 적절하지 않은 것은?
- 월별 매출 집계처럼 통계 목적으로 만든 통계성 엔터티
- 다른 엔터티의 부모 역할을 하며 독립적으로 생성되는 기본 엔터티
- 공통코드처럼 여러 곳에서 참조용으로 쓰이는 코드성 엔터티
- 트랜잭션 로그처럼 시스템 처리를 위해 두는 내부 엔터티
3. 두 회사가 모두 고객의 주소를 관리하려 한다.
- F 택배사: 시·구·동 단위로 배송 구역을 배정하고 구별 물동량을 집계한다.
- G 쇼핑몰: 주소는 송장 출력에만 쓰며, 시·구·동 단위로 검색하거나 집계할 일이 없다.
속성 정의에 대한 판단으로 가장 적절한 것은?
- F사는 시·구·동을 각각 별도 속성으로, G사는 주소를 하나의 속성으로 정의할 수 있다.
- 주소는 복합 속성이므로 업무와 관계없이 두 회사 모두 시·구·동으로 분리해야 한다.
- 주소는 항상 하나의 속성으로 정의해야 하므로 F사도 시·구·동으로 나누면 안 된다.
- F사의 시·구·동은 주소로부터 계산된 값이므로 파생 속성으로 정의해야 한다.
4. IE 표기법 ERD에서
고객과주문사이 관계선의고객쪽 끝은 막대 두 개(||),주문쪽 끝은 원과 까마귀 발(o{)로 표시되어 있다.이 관계를 물리 모델과 SQL로 옮길 때의 판단으로 가장 적절한 것은?
- 고객은 반드시 주문을 가지므로 고객별 주문 건수는 내부 조인만으로 모든 고객을 조회할 수 있다.
- 주문은 반드시 한 고객에 속하므로 주문 테이블의 고객번호 FK 컬럼에 NOT NULL을 지정할 수 있다.
- 주문 쪽 끝의 원(O) 기호는 주문이 고객 없이도 생성될 수 있음을 의미한다.
- 선택사양은 논리 모델에서만 의미가 있으므로 조인 방식을 판단하는 것과는 무관하다.
5.
수강엔터티의 주식별자는 (학번, 과목코드)이다. 학번은학생의, 과목코드는과목의 주식별자를 식별 관계로 상속받은 것이며, 두 속성 모두 업무에서 실제 사용하는 값이다.수강 엔터티의 식별자에 대한 설명으로 가장 적절한 것은?
- 학번+과목코드는 하나의 의미로 구성된 단일식별자에 해당한다.
- 학번은 수강 엔터티 내부에서 스스로 생성된 내부식별자에 해당한다.
- 두 속성은 업무와 무관하게 인위적으로 만든 값이므로 인조식별자에 해당한다.
- 두 속성으로 구성된 복합식별자이며, 각 속성은 부모에게서 받아온 외부식별자이다.
6.
재고테이블에 다음 데이터가 저장되어 있다.상품코드 창고 재고량 창고지역 P1 W1 10 서울 P1 W2 5 인천 P2 W1 7 서울 P3 W3 7 서울 현재 데이터만으로 판단할 때, 반례가 존재하여 성립할 수 없는 함수 종속은?
- 창고 → 창고지역
- (상품코드, 창고) → 재고량
- (상품코드, 창고) → 창고지역
- 상품코드 → 창고
7.
ORDERS는 개인고객(PERSON) 또는 법인고객(CORP) 중 하나와만 관계를 맺는 상호배타적(아크) 관계로 설계되었다.ORDERS
ORD_NO PER_NO CORP_NO O1 P01 NULL O2 NULL B01 O3 P02 NULL O4 NULL B02 PERSON: (P01, 김하준), (P02, 이서아) CORP: (B01, 한빛상사), (B02, 누리테크)
다음 SQL의 결과 행 수로 옳은 것은?
SELECT O.ORD_NO, NVL(P.PER_NM, B.CORP_NM) AS CUST_NM FROM ORDERS O LEFT OUTER JOIN PERSON P ON O.PER_NO = P.PER_NO JOIN CORP B ON O.CORP_NO = B.CORP_NO;- 2건
- 4건
- 6건
- 8건
8. 출고 트랜잭션은 '재고 수량 차감(UPDATE) → 출고 이력 기록(INSERT)'으로 구성된다. 재고 테이블에는
CHECK (재고수량 >= 0)제약이 있다. 요청 수량이 현재 재고보다 많아 차감 UPDATE가 제약 위반으로 실패하자 애플리케이션은 트랜잭션을 ROLLBACK하였고, 그 결과 트랜잭션 수행 전과 후 모두 데이터베이스가 정의된 무결성 제약을 만족하는 상태로 유지되었다.굵게 표시한 내용과 가장 관련 깊은 트랜잭션 특성은?
- 원자성(Atomicity)
- 일관성(Consistency)
- 고립성(Isolation)
- 지속성(Durability)
9. 모델링 관점에서 NULL 허용 설계에 대한 설명으로 가장 적절하지 않은 것은?
- 업무상 반드시 값이 있어야 하는 속성은 NOT NULL 제약으로 선언한다.
- 특정 유형의 행에만 값이 있어 NULL이 많은 속성들은 서브타입 분리를 검토한다.
- Oracle B-Tree 인덱스는 NULL도 정렬하여 저장하므로 단일 컬럼 인덱스로 IS NULL 조건을 효율적으로 처리한다.
- FK 컬럼이 NULL인 행은 INNER JOIN 결과에서 빠지므로 관계의 선택성을 모델에서 분명히 정의한다.
10. 본질식별자와 인조식별자의 사용 원칙에 대한 설명으로 가장 적절한 것은?
- 인조식별자는 조인이 단순해지므로 모든 엔터티에 먼저 적용하고, 필요할 때만 본질식별자를 검토한다.
- 인조식별자는 업무 의미가 없으므로 일반적으로 화면이나 보고서에 노출하지 않는다.
- 인조식별자는 업무 규칙을 담아야 하므로 반드시 '지점코드+연도'처럼 업무 코드를 포함해 만든다.
- 본질식별자는 대부분 단일 속성으로, 인조식별자는 대부분 복합 속성으로 구성된다.
11. '한 학생은 여러 과목을 수강하고, 한 과목은 여러 학생이 수강한다'는 요구사항을 관계형 데이터베이스로 설계하려 한다. 가장 적절한 방법은?
- 학생 테이블에 과목코드 컬럼을 두고 한 칸에 여러 과목코드를 콤마로 나열해 저장한다.
- 과목 테이블에 학번 컬럼을 외래키로 추가하여 수강 학생을 기록한다.
- 학번과 과목코드를 외래키로 갖는 수강 테이블을 두어 두 개의 1:N 관계로 분해한다.
- 학생 테이블과 과목 테이블을 하나로 합쳐 가능한 모든 조합을 저장한다.
12. 다음 [T] 테이블에 SQL을 실행했을 때 결과 행 수는? (Oracle, CODE는 VARCHAR2 타입이며 표의 '·'는 저장된 공백 한 칸을 의미한다.)
[T]
ID CODE 1 a 2 A 3 b 4 NULL 5 B· 6 NULL SELECT DISTINCT UPPER(CODE) FROM T;- 1행
- 2행
- 3행
- 4행
13. 다음 중 Oracle(19c 기준)에서 실행 시 오류가 발생하지 않는 SQL은? (EMP 테이블에는 ENAME 컬럼이 있다.)
SELECT 1 + 1;SELECT E.ENAME FROM EMP AS E;SELECT ENAME "Emp Name" FROM EMP;SELECT 'A' + 'B' FROM DUAL;
14. 다음 SQL의 실행 결과로 옳은 것은? (Oracle)
SELECT SUBSTR('ORACLE', 3) AS A, SUBSTR('ORACLE', 0, 2) AS B, SUBSTR('ORACLE', -3) AS C, SUBSTR('ORACLE', 7) AS D FROM DUAL;ACLE, OR, CLE, NULLACLE, NULL, CLE, ERACLE, OR, ACL, NULLACLE, O, CLE, NULL
15. SYSDATE가 2025-12-31 23:00:00일 때 다음 SQL의 실행 결과로 옳은 것은? (Oracle)
SELECT TO_CHAR(SYSDATE + 2/24, 'YYYY-MM-DD HH24') AS A, TO_CHAR(ADD_MONTHS(SYSDATE, 2), 'MM-DD') AS B, TO_CHAR(SYSDATE - 1, 'DD') AS C FROM DUAL;2026-01-01 01, 03-03, 302026-01-01 01, 02-28, 302025-12-31 25, 02-28, 302026-01-01 01, 02-28, 31
16. Oracle 함수와 같은 역할을 하는 SQL Server 함수(연산자)를 짝지은 것으로 적절하지 않은 것은?
- DECODE – DECODE
- NVL – ISNULL
- SYSDATE – GETDATE()
- SUBSTR – SUBSTRING
17. 다음 [PRODUCT] 테이블에 SQL을 실행했을 때 결과 값은? (Oracle, CODE는 VARCHAR2 타입)
[PRODUCT]
ID CODE 1 10 2 9 3 50 4 5 5 100 6 NULL SELECT COUNT(*) FROM PRODUCT WHERE CODE > '5';- 1
- 2
- 3
- 4
18. NULL이 포함된 비교와 논리 연산에 대한 설명으로 적절하지 않은 것은?
NULL = NULL의 결과는 TRUE가 아니라 UNKNOWN이다.UNKNOWN AND FALSE의 결과는 FALSE다.UNKNOWN OR TRUE의 결과는 TRUE다.NOT UNKNOWN은 TRUE이므로WHERE NOT (COMM = 100)은 COMM이 NULL인 행도 반환한다.
19. 다음 [ENROLL] 테이블에 SQL을 실행한 결과로 옳은 것은? (문자는 가나다순으로 정렬된다.)
[ENROLL]
SID DEPT GRD CREDIT 1 컴공 1 3 2 컴공 1 2 3 컴공 2 3 4 경영 1 3 5 경영 2 1 6 경영 2 3 7 컴공 2 NULL SELECT DEPT, GRD, SUM(CREDIT) FROM ENROLL GROUP BY DEPT, GRD HAVING COUNT(CREDIT) >= 2 ORDER BY DEPT, GRD;경영, 2, 4/컴공, 1, 5경영, 2, 4/컴공, 1, 5/컴공, 2, 3컴공, 1, 5/경영, 2, 4경영, 2, 4
20. 다음 [EMP] 테이블에 SQL을 실행한 결과로 옳은 것은?
[EMP]
ENAME DEPTNO COMM A 10 100 B 10 NULL C 20 0 D 20 50 E 30 NULL F 30 NULL G 40 200 SELECT DEPTNO, COUNT(*) - COUNT(COMM) AS N FROM EMP GROUP BY DEPTNO HAVING COUNT(*) <> COUNT(COMM) ORDER BY DEPTNO;10, 1/20, 1/30, 230, 210, 1/30, 210, 1/30, 0
21. 다음 [EMP] 테이블에 SQL을 실행한 결과의 출력 순서로 옳은 것은? (Oracle, 이름은 가나다순으로 정렬된다.)
[EMP]
ENAME SAL BONUS 가 300 NULL 나 250 100 다 400 0 라 200 150 마 350 NULL SELECT ENAME FROM EMP ORDER BY SAL + NVL(BONUS, 0) DESC, ENAME;- 가, 마, 다, 나, 라
- 다, 마, 가, 나, 라
- 가, 나, 라, 마, 다
- 다, 나, 라, 마, 가
22. 다음 [TASK] 테이블에 SQL을 실행한 결과의 출력 순서로 옳은 것은? (Oracle, DUE_DT는 DATE 타입이다.)
[TASK]
TID PRIORITY DUE_DT 1 2 2024-05-10 2 NULL 2024-05-01 3 1 NULL 4 2 2024-04-30 5 1 2024-05-03 6 NULL NULL SELECT TID FROM TASK ORDER BY PRIORITY DESC NULLS LAST, DUE_DT;- 2, 6, 4, 1, 5, 3
- 4, 1, 5, 3, 2, 6
- 4, 1, 3, 5, 2, 6
- 1, 4, 3, 5, 6, 2
23. 다음 [EMP], [DEPT] 테이블에 SQL을 실행한 결과로 옳은 것은?
[EMP]
ENAME DEPTNO 김 10 이 NULL 박 30 정 10 최 50 [DEPT]
DEPTNO DNAME 10 총무 20 기술 30 품질 SELECT COUNT(*), COUNT(D.DNAME) FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO(+);3, 34, 35, 55, 3
24. 다음 [PLAYER] 테이블에 SQL을 실행한 결과로 옳은 것은? (이름은 가나다순으로 정렬된다.)
[PLAYER]
PNAME SCORE 가 90 나 75 다 90 라 60 SELECT A.PNAME, COUNT(*) AS CNT FROM PLAYER A, PLAYER B WHERE A.SCORE < B.SCORE GROUP BY A.PNAME ORDER BY A.PNAME;가, 0/나, 2/다, 0/라, 3나, 2/라, 3나, 1/라, 2가, 0/나, 2/라, 3
25. 다음 [T1], [T2] 테이블에 SQL을 실행했을 때, 출력되는 ID 컬럼 값을 순서대로 나열한 것은? (Oracle)
[T1]
ID A 1 p 2 q 3 r [T2]
ID B 2 s 4 t 5 u SELECT ID, A, B FROM T1 FULL OUTER JOIN T2 USING (ID) ORDER BY ID;1, 2, 3, 4, 51, 2, 3, NULL, NULL2, 4, 5, NULL, NULL1, 2, 2, 3, 4, 5
26. 다음 [EMP] 테이블에 SQL을 실행했을 때 결과 건수와 CNT가 0인 행의 수로 옳은 것은? (MGR은 관리자의 EMPNO이다.)
[EMP]
EMPNO ENAME MGR 1 한 NULL 2 강 1 3 조 1 4 윤 3 5 장 3 6 임 3 SELECT M.ENAME, COUNT(E.EMPNO) AS CNT FROM EMP M LEFT OUTER JOIN EMP E ON E.MGR = M.EMPNO GROUP BY M.ENAME;- 2행 / 0행
- 6행 / 0행
- 6행 / 4행
- 6행 / 3행
27. 다음 SQL의 실행 결과로 옳은 것은?
[STUDENT]
SID SNAME 1 가 2 나 3 다 4 라 [SCORE]
SID SUBJ PT 1 국어 80 1 수학 55 2 국어 70 2 수학 90 3 국어 40 SELECT T.SNAME FROM STUDENT T WHERE NOT EXISTS (SELECT 1 FROM SCORE S WHERE S.SID = T.SID AND S.PT < 60) ORDER BY T.SID;나가, 다나, 라가, 나, 다, 라
28. 뷰(VIEW)에 대한 설명으로 가장 적절하지 않은 것은?
- 복잡한 조인·집계 쿼리를 단순한 이름으로 재사용할 수 있다.
- 이미 만든 뷰를 기반으로 또 다른 뷰를 생성할 수 있다.
- Oracle에서 뷰 정의를 바꾸려면 CREATE OR REPLACE VIEW를 사용한다.
- 일반 뷰는 생성 시점의 조회 결과를 별도 저장 공간에 실제로 저장한다.
29. 다음 SQL의 실행 결과로 옳은 것은? (행의 순서는 고려하지 않는다)
[A]
C1 C2 1 NULL 1 a 2 NULL 2 NULL [B]
C1 C2 1 NULL 2 a SELECT C1, C2 FROM A MINUS SELECT C1, C2 FROM B;(1, a), (2, NULL)(1, a)(1, a), (2, NULL), (2, NULL)(1, NULL), (1, a), (2, NULL)
30. 다음 SQL의 결과 건수는?
[DOMESTIC]
CITY 서울 부산 서울 [OVERSEAS]
CITY 도쿄 서울 SELECT '국내' AS GB, CITY FROM DOMESTIC UNION SELECT '해외', CITY FROM OVERSEAS;- 3행
- 4행
- 5행
- 2행
31. 다음 SQL의 결과 건수는?
[SALES]
REGION AMT 서울 10 서울 30 부산 50 대구 20 대구 25 SELECT REGION, SUM(AMT) FROM SALES GROUP BY ROLLUP(REGION) HAVING SUM(AMT) >= 50;- 1행
- 3행
- 4행
- 2행
32. 그룹 함수(ROLLUP, CUBE, GROUPING SETS)에 대한 설명으로 가장 적절하지 않은 것은?
- SQL Server는
GROUP BY DEPTNO, JOB WITH ROLLUP형식도 지원한다. - ROLLUP은 인수의 순서가 바뀌면 결과가 달라질 수 있다.
- GROUPING SETS를 쓰면 나열한 그룹 외에 전체 합계 행이 자동으로 추가된다.
- 그룹 함수 결과의 출력 순서를 보장하려면 ORDER BY를 사용해야 한다.
- SQL Server는
33. 다음 SQL의 실행 결과에서 RK 값을 ENAME 순서(A~F)대로 나열한 것으로 옳은 것은?
[EMP]
ENAME DEPTNO A 10 B 10 C 20 D 30 E 30 F 30 SELECT ENAME, RANK() OVER (ORDER BY DEPTNO DESC) AS RK FROM EMP ORDER BY ENAME;5, 5, 4, 1, 1, 13, 3, 2, 1, 1, 11, 1, 3, 4, 4, 45, 6, 4, 1, 2, 3
34. 다음 SQL의 실행 결과에서 BAL 값을 출력 순서대로 나열한 것으로 옳은 것은?
[ACC_TXN]
ACC SEQ AMT A 1 100 A 2 -30 A 3 50 B 1 200 B 2 -50 SELECT ACC, SEQ, SUM(AMT) OVER (PARTITION BY ACC ORDER BY SEQ ROWS UNBOUNDED PRECEDING) AS BAL FROM ACC_TXN ORDER BY ACC, SEQ;100, 70, 120, 320, 270100, 70, 120, 200, 150120, 120, 120, 150, 150100, -30, 50, 200, -50
35. 다음 SQL의 실행 결과에서 R 값을 표의 행 순서대로 나열한 것으로 옳은 것은? (Oracle 기준, 소수점 셋째 자리에서 반올림)
[STOCK]
CAT ITEM QTY 과일 사과 30 과일 배 10 채소 무 20 채소 파 20 채소 양파 40 SELECT CAT, ITEM, RATIO_TO_REPORT(QTY) OVER (PARTITION BY CAT) AS R FROM STOCK;0.75, 0.25, 0.25, 0.25, 0.50.25, 0.08, 0.17, 0.17, 0.331, 0.33, 0.5, 0.5, 10.75, 1, 0.25, 0.5, 1
36. SQL Server에서 실행했을 때 오류가 발생하는 SQL은?
- SELECT TOP (3) ENAME FROM EMP ORDER BY SAL DESC;
- SELECT ENAME FROM EMP ORDER BY SAL DESC FETCH FIRST 3 ROWS ONLY;
- SELECT ENAME FROM EMP ORDER BY SAL DESC OFFSET 2 ROWS;
- SELECT TOP (50) PERCENT ENAME FROM EMP ORDER BY SAL DESC;
37. 게시판을 한 페이지에 3건씩, 최근 등록일 순으로 보여줄 때 2페이지를 조회하는 SQL이다. 실행 결과의 ID로 옳은 것은? (출력 순서대로 표기)
[NOTICE]
ID REG_DT 1 2025-01-05 2 2025-01-02 3 2025-01-09 4 2025-01-01 5 2025-01-07 6 2025-01-03 7 2025-01-08 SELECT ID FROM (SELECT ID, ROW_NUMBER() OVER (ORDER BY REG_DT DESC) AS RN FROM NOTICE) WHERE RN BETWEEN 4 AND 6 ORDER BY RN;- 1, 6, 2
- 4, 5, 6
- 5, 1, 6
- 6, 2, 4
38. 다음 SQL의 실행 결과로 옳은 것은? (Oracle 기준, (RT, CNT)를 출력 순서대로 표기)
[EMP]
EMPNO ENAME MGR 1 KIM NULL 2 LEE 1 3 PARK 2 4 HAN NULL 5 YOON 4 6 SEO 4 7 OH 1 8 BAE 4 SELECT RT, COUNT(*) AS CNT FROM (SELECT CONNECT_BY_ROOT ENAME AS RT FROM EMP WHERE CONNECT_BY_ISLEAF = 1 START WITH MGR IS NULL CONNECT BY PRIOR EMPNO = MGR) GROUP BY RT ORDER BY RT;- (KIM,2), (HAN,3)
- (HAN,4), (KIM,4)
- (HAN,3), (KIM,3)
- (HAN,3), (KIM,2)
39. 다음 SQL의 실행 결과로 옳은 것은? (Oracle 기준, (LV, CNT)를 출력 순서대로 표기)
[EMP]
EMPNO ENAME MGR 1 A NULL 2 B 1 3 C 1 4 D 2 5 E 2 6 F 3 7 G 5 SELECT LEVEL AS LV, COUNT(*) AS CNT FROM EMP START WITH MGR IS NULL CONNECT BY PRIOR EMPNO = MGR GROUP BY LEVEL ORDER BY LEVEL;- (1,1), (2,2), (3,4)
- (1,1), (2,3), (3,2), (4,1)
- (1,1), (2,2), (3,3), (4,1)
- (1,1), (2,2), (3,2), (4,2)
40. Oracle의 PIVOT, UNPIVOT 절에 대한 설명으로 옳지 않은 것은?
- PIVOT의 IN 절에는 열로 만들 값을 상수로 직접 나열해야 하며, XML 형식이 아니면 서브쿼리를 쓸 수 없다.
- PIVOT은 집계 대상 컬럼과 FOR 컬럼을 제외한 나머지 컬럼을 기준으로 암시적인 GROUP BY를 수행한다.
- UNPIVOT은 별도 지정이 없으면 EXCLUDE NULLS로 동작하여 값이 NULL인 열은 행으로 만들지 않는다.
- UNPIVOT은 PIVOT의 역연산이므로, PIVOT으로 집계한 결과를 UNPIVOT하면 항상 원래 테이블의 행이 그대로 복원된다.
41. 다음 SQL의 실행 결과로 옳은 것은? (Oracle 기준, C1, C2 순서로 표기)
SELECT REGEXP_COUNT('abababa', 'aba') AS C1, REGEXP_COUNT('abababa', '(ab)+') AS C2 FROM DUAL;- 3, 1
- 3, 3
- 2, 1
- 2, 3
42. 다음 SQL의 결과 건수는? (Oracle 기준)
[MEMBER]
EMAIL kim@a.com lee.b@c.kr park@d choi@@e.com jung@f.co.kr SELECT EMAIL FROM MEMBER WHERE REGEXP_LIKE(EMAIL, '^[a-z.]+@[a-z]+(\.[a-z]+)+$');- 3
- 4
- 2
- 5
43. PRODUCT 테이블에 대해 아래 UPDATE 문을 실행(Oracle)한 후
SELECT SUM(price) FROM product;의 결과는?PRODUCT
PID CAT PRICE 1 A 100 2 A 300 3 B 200 4 B NULL 5 C 50 UPDATE product p SET price = (SELECT AVG(x.price) FROM product x WHERE x.cat = p.cat) WHERE p.price IS NULL OR p.price < 150;- 650
- 850
- 950
- 1050
44. VISIT 테이블에는 ('kim', 3) 한 행만 있다. 아래 MERGE 문(Oracle)을 바인드 변수 :p_id에 'lee', 'lee', 'kim'을 차례로 넣어 세 번 실행한 후 VISIT 테이블의 데이터로 옳은 것은? (USER_ID, CNT 순)
MERGE INTO visit t USING (SELECT :p_id AS user_id FROM dual) s ON (t.user_id = s.user_id) WHEN MATCHED THEN UPDATE SET t.cnt = t.cnt + 1 WHEN NOT MATCHED THEN INSERT (user_id, cnt) VALUES (s.user_id, 1);- ('kim', 3), ('lee', 1)
- ('kim', 4), ('lee', 1)
- ('kim', 4), ('lee', 1), ('lee', 1)
- ('kim', 4), ('lee', 2)
45. T 테이블에는 (ID, VAL) = (1, 100)인 한 행이 커밋되어 있다. Oracle에서 아래 문장을 순서대로 실행한 후
SELECT val FROM t;의 결과는?UPDATE t SET val = val + 10; SAVEPOINT a; UPDATE t SET val = val * 2; SAVEPOINT b; UPDATE t SET val = val - 20; ROLLBACK TO a; UPDATE t SET val = val + 5; SAVEPOINT b; UPDATE t SET val = 0; ROLLBACK TO b; COMMIT;- 115
- 225
- 110
- 205
46. Oracle과 SQL Server의 트랜잭션 제어 방식을 짝지은 것으로 올바르지 않은 것은?
- 저장점 생성 – Oracle:
SAVEPOINT sp1;/ SQL Server:SAVE TRAN sp1; - 저장점까지 롤백 – Oracle:
ROLLBACK TRAN sp1;/ SQL Server:ROLLBACK TO sp1; - 트랜잭션 시작 – Oracle: 첫 DML 실행 시 자동 시작 / SQL Server:
BEGIN TRAN으로 명시 - 트랜잭션 확정 – Oracle:
COMMIT;/ SQL Server:COMMIT TRAN;
- 저장점 생성 – Oracle:
47. MEMBER 테이블(ID, NAME)에는 3건의 데이터가 커밋되어 있다. Oracle에서 아래 문장을 순서대로 실행한 후
SELECT COUNT(grade), SUM(point) FROM member;의 결과는?ALTER TABLE member ADD (grade CHAR(1) DEFAULT 'B'); ALTER TABLE member ADD (point NUMBER); ALTER TABLE member MODIFY (point DEFAULT 100); INSERT INTO member (id, name) VALUES (4, 'D');- 1, 100
- 4, 400
- 4, 100
- 1, 400
48. SQL Server에서 EMP 테이블에 대해 실행할 때 오류 없이 수행되는 문장은?
ALTER TABLE emp ADD phone VARCHAR(20);ALTER TABLE emp ADD COLUMN phone VARCHAR(20);ALTER TABLE emp MODIFY (phone VARCHAR(30));ALTER TABLE emp DROP (phone);
49. SCOTT가 아래 DCL을 실행했다. 이후 KIM이 실행한 문장 중 오류가 발생하는 것은? (Oracle)
-- SCOTT 실행 GRANT ALL ON scott.dept TO kim; REVOKE DELETE, UPDATE ON scott.dept FROM kim;SELECT * FROM scott.dept;INSERT INTO scott.dept VALUES (50, 'HR', 'SEOUL');SELECT dname FROM scott.dept WHERE deptno = 10;UPDATE scott.dept SET loc = 'BUSAN' WHERE deptno = 10;
50. 사용자와 계정 생성에 대한 설명으로 가장 적절한 것은?
- SQL Server는 CREATE USER만 실행하면 서버 접속과 데이터베이스 사용이 모두 가능하다.
- SQL Server는 서버 접속용 로그인(LOGIN)과 데이터베이스 사용용 사용자(USER)를 구분한다.
- Oracle에서 CREATE USER로 사용자를 만들면 CREATE SESSION 권한이 자동으로 부여된다.
- Oracle에서는 테이블을 소유한 사용자라면 누구나 새 사용자를 생성할 수 있다.
AI가 SQLD 출제 범위를 바탕으로 새로 만든 예상 문제이며, 실제 기출문제가 아닙니다.