[DB/SQLD] SQLD 기출문제 2과목 SQL 기본 및 활용 중요개념 (1)

2 분 소요

1

order siblings by를 수행하면 전체 테이블이 아니라 특정 칼럼 기준으로 정렬된다.

2

index range scan descending : 인덱스를 역순으로 탐색해 최댓값을 쉽게 찾을 수 있음.

3

varchar(가변길이 문자형)은 비교시 서로 길이가 다를 경우 서로 다른 내용으로 판단.

char(고정길이 문자형)은 길이가 서로 다르면 짧은 쪽에 스페이스를 추가해 같은 값으로 판단한다. 같은 값에서 길이만 서로 다를 경우 다른 값으로 판단하는 것은 varchar로 비교하는 경우이다.

문자형과 숫자형을 비교 시 문자형을 숫자형으로 묵시적 변환하여 비교한다.

연산자 실행 순서는 괄호, not, 비교연산자, and, or 순이다.

4

상호연관 서브쿼리(correlated subquery)는 메인쿼리 값을 서브쿼리가 사용하고 서브쿼리의 값을 받아서 메인쿼리가 계산되는 쿼리이다.

5

서브쿼리 내부에서는 메인쿼리의 칼럼을 사용할 수 있지만 반대로 메인쿼리에서는 서브쿼리의 칼럼을 사용할 수 없다.

6

ROLE : 데이터베이스에서 object(테이블, 프로시저, 뷰)등의 권한을 묶어서 권한을 관리할 수 있다.

7

hash join은 정렬작업이 없어 정렬이 부담되는 대량배치작업에 유리하다.

8

in연산에서 null은 비교에서 애초에 제외되어 비교연산을 수행하지 않는다.

9

select nvl(count(*), 9999) from table where 1=2 –> 0

집계함수에서 count(*) 함수는 조건절이 거짓일 때 0이 반환된다.

10

unbounded preceding은 end point에 사용될 수 없다.

11

PL/SQL

  • 절차형 언어
  • 테이블 생성 가능
  • 조건문은 if ~ then ~ elseif ~ end if와 case~when을 사용한다.
  • name이라는 변수에 ‘aaa’를 대입할 경우 ‘:=’을 사용한다.

12

  • 오라클 계층형 질의에서 루트 노드의 level 값은 1이다.
  • 순방향과 역방향 모두 수행 가능
  • 계층형 질의는 하나의 테이블에서 자기자신을 조인하는 형태를 사용

13

  • 인덱스는 순차, 결합, 비트맵, 클러스터, 해시 인덱스가 있다.
  • varchar, char ,date, number모두 인덱스 생성이 가능하다.
  • 파티션 인덱스의 경우 파티션 키에 대해서 인덱스를 생성할 수 있고 파티션 키에 대해서 생성한 인덱스를 global 인덱스라고 한다.
  • 인덱스의 수가 증가하면 입력, 삭제, 수정 속도가 저하될 수 있다.

14

연산자 우선순위

산술연산자, 연결연산자, 비교연산자, is null, like, in, between, not연산자, and, or

15

self join은 동일한 테이블에서 발생하는 조인을 의미하며, from절에 동일한 테이블명이 두번이상 나타난다. 동일한 테이블을 두 번 이상 사용하므로 from절에 별칭을 사용해야 한다.

16

순수 관계 연산자란, 관계형 데이터베이스에 적용할 수 있도록 개발한 관계 연산자를 의미한다. select, project, join, divide가 있다.

17

실행계획은 sql이 데이터베이스에서 실행될 때 실행 절차 및 방법을 표현하여 dba에게 알려준다. 실행계획은 옵티마이저의 종류를 확인할 수 있는 role, cost가 표현되고 sql이 내부적으로 어떤 방식으로 실행되었는지 확인할 수 있다.

18

온라인 트랜잭션 처리(OLTP)에는 해시조인 보다는 nested loop 방식이 유용하다. 즉 nested loop 방식은 적은 데이터를 조인할 때 유리한 구조.

19

PL/SQL의 특징

  • block 구조로 되어있어 각 기능별로 모듈화가 가능
  • 변수, 상수 등을 선언하여 sql 문장 간 값을 교환
  • if, loop 등의 절차형 언어를 사용하여 절차적인 프로그램이 가능하도록 한다.
  • dbms 정의 에러나 사용자 정의 에러를 정의해 사용가능
  • 오라클에 내장되어 있어 오라클과 pl/sql을 지원하는 어떤 서버로도 프로그램을 옮길 수 있다.
  • pl/sql은 응용프로그램의 성능을 향상
  • pl/sql은 여러 sql문장을 block으로 묶고 한번에 block 전부를 서버로 보내기 때문에 통신량을 줄일 수 있다.
  • 기본구조로 declare와 begin~end 문은 필수지만, exception문은 선택사항이다.

20

고유키로 지정된 모든 칼럼은 null을 가질 수 있다.

21

natural join은 where절에 join조건을 추가할 수 없지만, cross join의 경우 where절에 join조건을 추가할 수 있다.

natrual join은 테이블 간 동일한 이름을 가진 모든 칼럼들에 대해 조인을 수행한다.

22

nulls last는 null 값을 마지막에 정렬시키는 것이다.