SQLD 자격증 SQL 기본 및 활용 기출문제 / SQL시험 34회 시행

2020. 8. 27. 11:57SQL/SQLD - SQL 기본 및 활용

# SQL 여덟 번째 : 기출문제 오답 및 개념 정리

 

#2019년 8월 24일 시행 시험 개념 및 오답 정리 - SQL 기본 및 활용

 

1. Truncate tabel 명령어

Truncate table :  특정 행을 지우는 것이 아니라 모든 행을 제거한다. 한꺼번에 다 지워야 한다.

                            삭제한 데이터는 다시 되돌릴 수 없다.

                            용량이 줄어들고, 인덱스 등도 모두 삭제된다.

                            테이블은 삭제되지 않고, 데이터만 삭제한다.

 

Drop : 테이블의 구조를 포함한 테이블의 존재 자체를 제거한다.

           테이블 전체를 삭제, 공간, 객체를 삭제한다. 삭제 후 절대 되돌릴 수 없다.

 

Delete : 테이블의 데이터는 지워지지만, 테이블 용량은 줄어들지 않는다.

              원하는 데이터만 지울 수 있다. 삭제 후 잘못 삭제한 것을 되돌릴 수 있다.

 

2. 프로시저와 트리거의 차이점

프로시저 트리거
CREATE PROCEDURE 문법사용 CREATE TRIGGER 문법사용
생성하면 소스코드와 실행코드가 생성됨 생성하면 소스코드와 실행코드가 생성됨
EXCUTE 명령어로 실행 생성 후 자동 실행
COMMIT, ROLLBACK 실행가능 COMMIT, ROLLBACK 실행 불가

 

3. 인덱스조인

-FULL ACCESS JOIN을 수행하는 두 개의 테이블에 대해서 Nested loop join을 수행하면

두 개의 테이블에서 모든 행마다 join 연산을 수행하므로 성능이 떨어진다.

 

-조인 조건이 Non - Equal일 경우 HASH JOIN으로 수행되지 못하고 MERGE JOIN으로 수행된다.

 

4. 조인기법

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

- Sort Merge Join은 Equal Join과 Not equal Join 둘 다에서 사용 가능하다.

- Sort Merge Join은 정렬된 결과들을 통해 조인 작업이 수행되며

   조인에 성공하면 추출 버퍼에 넣는 작업을 수행한다.

- Nested Loop Join은 조인칼럼의 인덱스가 존재해야 한다.

 

5. Null 합계

A1 A2 A3 A4
10 10 10 10
20 20 NULL 20
30 NULL 30 NULL
NULL 40 20 40

- 1번 경우는 4개의 칼럼(A1 + A2 + A3 + A4) 모두 NULL이 아닌 값을 가지는 행에 대해서만

   합계가 계산되므로 첫 번째 행에서의 칼럼들의 합계만 계산된다.

 

- 2번 경우는 4개의 칼럼에 대해서 각각의 합계가 계산되고 이후에 각 합계들의 최종적인 합계가 계산된다.

 

6. ROLLUP

GROUP BY ROLLUP (부서, 직업)

 

부서별 소계

(부서, 직업) 별 소계

전체 합계

 

위의 3가지가 계산된다.

롤업의 경우 계층구조이기 때문에 인수의 순서가 바뀌면 결과값도 바뀐다.

 

7. 트랜잭션의 특징

- 원자성(Atomicity) : 트랜잭션이 데이터베이스에 모두 반영되거나 아니면 전혀 반영되지 않아야 한다.

- 일관성(Consistency) : 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다.

- 고립성(Isolation = 격리성)

    -> 둘 이상의 트랜잭션이 동시에 병행 실행되고 있을 경우에

        어느 하나의 트랜잭션이라도 다른 트랜잭션에 끼어들 수 없다.

- 지속성(Durability = 영속성) : 트랜잭션이 성공적으로 완료될 경우, 결과는 영구적으로 반영되어야 한다.

 

8. ORACLE과 SQL SERVER에서 ROLLBACK의 차이점

- ORACLE의 경우 기본값이 AUTO COMMIT OFF로 설정된 상태에서

   DDL이 수행되면 묵시적으로 commit가 수행된다.

- SQL SERVER의 경우 기본값이 AUTO COOMMIT OFF로 설정된 상태에서

   DDL이 수행되어도 묵시적으로 COMMIT가 수행되지 않는다.

 

예시

ORACLE의 경우 ROLLBACK이 수행된 후 UPDATE와 CREATE 구문 모두 취소되지 않는다.

SQL SERVER의 경우 ROLLBACK이 수행된 후 UPDATE와 CREATE 구문 모두 취소된다.

 

9. ORDER BY의 특징

- ORDER BY 속성에 숫자와 칼럼을 혼용하여 사용할 수 있다.

- SELECT 구문에 사용되지 않은 칼럼도 ORDER BY 구문에서 사용할 수 있다.

- ORACLE은 NULL을 가장 큰 값으로 취급하여 ORDER BY시 맨 뒤로 정렬한다.

   SQL SERVER는 반대이다.

- 기본은 오름차순이다 ASC

- count(*) 와 같은 조건식 사용가능

 

10. INTERSECT

- 결과의 교집합으로 중복된 행을 하나의 행으로 표시한다.