Q1. 트랜잭션의 특징 중에서 COMMIT이 완료되면 저장되었음을 보장해야 하는 특성은 ?
- 원자성
- 일관성
- 고립성
- 영속성
-> 영속성
< 트랜잭션의 특성 >
원자성(atomicity): 데이터베이스 연산의 전부가 실행되거나 전혀 실행되지 않아야한다는 특성 (ALL or NOTHING)
일관성(consistency) : 데이터베이스의 상태가 모순되지 않아야 한다. 트랜잭션 실행 후에도 일관성이 유지되어야함
고립성(isolation) : 트랜잭션 실행 중에 생성하는 연산의 중간결과는 다른 트랜잭션이 접근 X (부분적인 실행결과를 다른 트랜잭션이 볼 수 없음)
영속성(durability) : 트랜잭션이 그 실행을 성공적으로 완료하면 그 결과는 영구적 보장
Q2. Insert 문의 성능을 향상 시키기 위해서 Buffer Cache의 기록을 생략하는 옵션은 ?
-> Nologging 옵션
Q3. EMP 테이블의 구조는 삭제하지 않고 모든 데이터를 삭제하는 SQL문을 작성 (단, 테이블이 데이터를 모두 삭제 후 테이블의 공간은 초기화
-> TRUNCATE TABLE EMP;
* 테이블의 구조 까지 삭제 -> DROP
구조는 남기고 테이블의 데이터만 삭제 -> DELETE
구조는 남기고 테이블의 데이터 삭제, 공간 초기화 -> TRUNCATE
Q3. SQL문의 결과가 다음과 같이 출력되도록 SQL문을 수정
SELECT 'Jiwon','' FROM DUAL
UNION ALL
SELECT '','Jiwon' FROM DUAL ;
->
ALTER TABLE EMP
ADD CONTRAINT FK_DEPT FOREIGN KEY(DEPTNO) REFERENCES DEPT(DEPTNO);SELECT MAX(A), MAX(B)
FROM (SELECT 'Jiwon' A,''B FROM DUAL
UNION ALL
SELECT '' A,'Jiwon' B FROM DUAL );
Q4. 다음중 EQUI JOIN에서만 나타나는 실행 계획은 ?
- SORT MERGE
- NESTED LOOP
- HASH JOIN
- FILTER
-> HASH JOIN
< 해시 조인 >
먼저 선행 테이블을 결정하고 선행 테이블에서 주어진 조건(Where 구)에 해당하는 행을 선택
해당 행이 선택되면 조인 키를 기준으로 해시 함수를 이용해 해시 테이블을 메인 메모리에 생성하고 후행 테이블에서 주어진 조건에 만족하는 행을 찾음
후행 테이블의 조인 키를 사용해 해시 함수를 적용해서 해당 버킷을 검색
Q5. 다음중 Oracle 데이터베이스에서 차집합을 구하는 것은 ?
- UNION
- UNION ALL
- MINUS
- EXCEPT
-> MINUS
* Oracle 데이터베이스 : MINUS
MS-SQL 데이터베이스 : EXCEPT
Q6. 그룹 함수 중에서 각 그룹에 대해서 SubTotal을 만들어 주는 것은 ?
- GROUPING SETS
- GROUPING
- CUBE
- ROLLUP
-> ROLLUP
Q7. 다음의 A에 올바른 것은 ?
SELECT *
[ A ] OVER (ORDER BY MONTH) AS next_month_sales
FROM sales;
-> LEAD(net_sales)
< 행 순서 관련 윈도우 함수 >
FIRST_VALUE : 파티션에 가장 처음에 나오는 값을 구함 (MIN함수 사용과 동일)
LAST_VALUE : 파티션에 가장 나중에 나오는 값을 구함(MAX함수 사용과 동일)
LAG : 이전 행을 가지고 옴
LEAD : 특정 위치의 행을 가져옴 (기본값 1)
Q8. SQL 실행 결과를 보고 SQL 작성 (테이블명 : EMP, JOB은 'SALESMAN'을 조회)
-> SELECT LEVEL, EMPNO, ENANE, MGR
FROM EMP
START WITH JOB = 'SALESMAN'
CONNECT BY PRIOR EMPNO = MGR ;
Q9. SQL 실행 결과를 보고 SQL 작성 (테이블명 : EMP,DEPT)
-> SELECT b.name, a.job, SUM(a.sal) sal, COUN(a.EMPNO)
FROM EMP a, DEPT b
WHERE a.deptno = b.deptno
GROUP BY ROLLUP(b.DNAME, a.JOB);
Q 10. 다음 중 테이블에서 데이터가 저장되어있는 최상위 위치는?
- High Watermark
- Top
- ROWID
- MAX Extents
-> High Watermark
Q 11. 다음 SQL문에서 text_idx 인덱스의 종류로 올바른 것은 ?
CREATE TABLE test(a number, b char(3,c varchar2(10) )
PARTITION BY RANGE(a) (
PARTITION p1 VALUES LESS THAN(1000),
PARTITION p2 VALUES LESS THAN (2000),
PARTITION p3 VALUES lESS THAN (maxvalue)
CREATE INDEX test_idx on test(b) LOCAL;
- Global Prefixed Partition Index
- Global Non-Prefixed Partition
- Local Prefixed Partition Index
- Local Non-prefixed Parititon Index
-> Local Non-Prefixed Partition Index
* LOCAL 키워드를 사용함
파티션 키는 a 인덱스 키는 b 로 다름
< 파티션 인덱스 >
Global Index : 여러 개의 파티션에서 하나의 인덱스를 사용
Local Index : 해당 파티션 별로 각자의 인덱스를 사용
Prefixed Index : 파티션 키와 인덱스 키가 동일
Non Prefixed Index : 파티션 키와 인덱스 키가 다름
Q 11. FROM절에 기술한 테이블 순서대로 조인하는 힌트(Oracle)은 ?
-> ORDERED
* MS-SQL은 option
Q 12. EMP 테이블에서 MGR칼럼이 NULL이면 "9999"로 출력하는 SELECT문 ?
-> SELECT NVL(MGR,9999) FROM EMP;
Q 13. SELECT문의 결과 집합에 따른 가상의 순번은 ?
- ROWID
- COUNT
- HASH
- ROWNUM
-> ROWNUM
'Database & Bigdata > SQLD' 카테고리의 다른 글
[SQLD] 최신 기출 문제(35회차) - 오답 체크 (0) | 2020.09.01 |
---|---|
[SQLD] 실전 모의고사 150제 - 오답체크 (0) | 2020.09.01 |
[SQLD] 데이터 모델링의 이해 - 오답체크 (0) | 2020.08.29 |
[SQLD] SQL 최적화의 원리 - 옵티마이저와 실행 계획, 옵티마이저 종류, 인덱스, 실행 계획, 옵티마이저 조인 (0) | 2020.08.25 |
[SQLD] SQL 활용 - 그룹 함수, 윈도우 함수, 테이블 파티션 (0) | 2020.08.22 |
댓글