01
다음 SQL 문 실행 결과로 올바른 것은?
SELECT COALESCE(NULL, '2', '1')
FROM DUAL;
SQL
복사
COALESCE 함수는 NULL 이 아닌 인자를 반환하는 함수이다. 첫번째는 NULL, 두번째는 NULL 이 아니기 때문에 2 를 반환한다.
02
다음 중에서 EQUI JOIN 에서만 나타나는 실행계획은 무엇인가? HASH JOIN
03
계층형 조회에서 가장 상위 레벨의 값은 무엇인가? 1
04
그룹 함수 중에서 각 그룹에 대해서 SUB-TOTAL 을 만들어 주는 것은? ROLLUP
05
DELETE FROM 과 TRUNCATE TABLE
•
DELETE FROM 문은 테이블의 데이터를 삭제할 수 있지만, 테이블의 구조는 삭제할 수 없다.
•
TRUNCATE TABLE 테이블은 데이터를 빠르게 삭제하며 로그를 기록하지 않는다.
•
TRUNCATE TABLE 은 특정 행만을 삭제할 수 없다
•
DELETE FROM 문은 특정 행만을 삭제할 수 있다.
06
TRUNCATE TABLE 은 외래키 무결성을 확인하지 않고 테이블에 대해서 LOCK 을 획득 후 일괄적으로 빠르게 삭제한다. 또 TRUNCATE TABLE 로 삭제를 실시하면 테이블 용량도 초기화된다.
07
날짜 데이터를 문자로 바꾸고 문자에서 연도만 출력하는 SQL 문은?
SELECT TO_CHAR(SYSDATE, ‘YYYY’)
FROM DUAL;
SQL
복사
08
다음의 SQL 실행 결과
SELECT CONCAT ('AB', 'CD'), // ABCD
LTRIM(' AB') // AB
FROM DUAL;
SQL
복사
09
다음 SQL 문을 ANSI/ISO 표준으로 바꾸기
SELECT * FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO;
SELECT * FROM EMP INNER JOIN DEPT;
SQL
복사
10
commit 과 rollback 의 장점
•
데이터 무결성 보장
•
영구적인 변경을 하기 전에 데이터의 변경 사항 확인 가능
•
논리적으로 연관된 작업을 그룹핑하여 처리 가능
11
SELF JOIN 은 하나의 테이블에서 두 개의 칼럼이 연관 관계를 가지고 있는 경우에 사용한다.
12
테이블에 대한 권한은 각 테이블의 소유자가 가지고 있기 때문에 소유자로부터 권한을 받지 않으면 다른 유저의 테이블에 접근할 수 없다.
13
•
실행 계획은 SQL 문의 처리를 위한 절차와 방법이 표현된다.
•
동일 SQL 문에 대해 실행 계획이 다르다고 결과가 달라지지 않는다. 그러나 실행 계획의 차이로 성능이 달라질 수 있다.
•
실행 계획은 액세스 기법, 조인 순서, 조인 방법 등으로 구성된다.
•
최적화 정보는 실행 계획의 단계별 예상 비용을 표시한 것이다.
14
•
인덱스는 내림차순으로 생성및 정렬된다.
•
비용적인 측면에서는 인덱스 스캔보다 전체 테이블 스캔이 유리할 수 있다.
•
규칙 기반 옵티마이저의 규칙에 따라 적절한 인덱스가 존재하면 전체 테이블 스캔보다는 항상 인덱스를 사용하려고 한다.
•
인덱스 범위 스캔은 결과 건수만큼 반환한다. 결과가 없으면 한 건도 반환하지 않을 수 있다.
15
NVL 함수를 사용하는 것은 합계오류 예방과 전혀 관계가 없다.
16
GROUP BY CUBE(DEPTNO, JOB);
// 같은 결과를 반환하는 그룹 함수
GROUP BY GROUPING SETS (DEPTNO, JOB (DEPTNO, JOB), ());
SQL
복사
17
인덱스에 액세스 할 때 WHERE 절 LIKE 앞뒤로 와일드카드가 존재하면 정상적인 INDEX RANGE SCAN 이 불가능하다
18
인덱스를 사용할 수 없는 조건
•
인덱스가 사용되는 칼럼에 NVL 을 사용했다.
•
인덱스가 사용되는 칼럼에 TO_CHAR() 함수로 인덱스 키 칼럼을 형변환 했다.
•
|| 을 이용하여 인덱스를 변경하였다.
19
SQL 문에서 NULL 과 NULL 을 비교할 수 없다. 때문에 공집합을 반환한다.
20
순서 관련 함수
•
FIRST_VALUE
•
LAST_VALUE
•
LAG
RANK 는 아니다.
21
SUBQUERY 의 종류 중에서 SUBQUERY 가 MAINQUERY 의 제공자 역할을 하고, MAIN QUERY 의 값이 SUBQUERY 에 주입되지 않는 유형은 무엇인가? ACCESS SUBQUERY
•
ACCESS SUBQUERY : 쿼리의 변형이 없고 제공자의 역할을 한다.
•
FILTER SUBQUERY : 쿼리의 변형이 없고 확인자 역할을 한다.
•
EARLY FILTER SUBQUERY : 쿼리의 변형이 없고 서브쿼리가 먼저 실행하여 데이터를 걸러낸다
22
ANSI/ISO 표준 SQL 에서 두 테이블 간에 동일한 칼럼 이름을 가지는 것을 모두 출력하는 조인 방식은 NATURAL JOIN 이다.
NATURAL JOIN
•
별칭 사용 불가
•
두 테이블에서 동일한 칼럼 이름을 가지는 칼럼은 모두 조인된다.
•
동일한 칼럼이 두 개 이상일 경우 JOIN ~ USING 문장을 사용한다.
23
차수 : 릴레이션의 칼럼수. 조인된 모든 칼럼수
카디널리티 : 선택된 행들의 개수 (카테시안곱)
24
SELECT ...
FROM 급여이력 S
WHERE NOT EXISTS (
SELECT 'X'
FROM 사원 P
WHERE P.사원번호 = S.사원번호)
// 같은 내용
SELECT ...
FROM 급여이력 S LEFT OUTER JOIN 사원 P
ON (S.사원번호 = P.사원번호)
WHERE P.사원번호 IS NULL;
SQL
복사
25
•
서브쿼리는 괄호를 사용해서 SELECT 문을 감싸서 사용하는 것이다.
•
서브쿼리는 비교 연산자와 함께 사용이 가능하다.
•
인라인뷰 칼럼을 메인 쿼리에서 사용이 가능하다.
•
서브쿼리는 SELECT, FROM, WHERE 절 등에서 사용이 가능하다.
26
SELECT 'A', 1 FROM DUAL
UNION ALL
SELECT 1, 'A' FROM DUAL;
SQL
복사
•
조회되는 데이터의 구조가 다르기 때문에 오류가 발생한다.
•
오류 발생으로 실행되지 않는다.
27
•
SQL SERVER 는 NULL 값을 인덱스 맨 앞에 저장한다. (ORACLE 은 맨 뒤에)
•
ORACLE 에서 인덱스 구성 칼럼 중 하나라도 NULL 이 아닌 레코드는 인덱스에 저장한다.
•
SQL SERVER 는 인덱스 구성 칼럼이 모두 NULL 인 레코드도 인덱스에 저장한다.
•
ORACLE 에서 인덱스 구성 칼럼이 모두 NULL 인 레코드는 인덱스에 저장하지 않는다.