2020. 8. 27. 11:57ㆍSQL/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
- 결과의 교집합으로 중복된 행을 하나의 행으로 표시한다.
'SQL > SQLD - SQL 기본 및 활용' 카테고리의 다른 글
SQLD 시험 대비 개념 마지막 정리 (0) | 2020.09.03 |
---|---|
SQLD 자격증 SQL 기본 및 활용 기출문제 / SQL시험 30회 시행 (0) | 2020.09.01 |
SQLD 자격증 SQL 기본 및 활용 기출문제 / SQL시험 33회 시행 (0) | 2020.08.17 |
SQLD 자격증 SQL 기본 및 활용 기출문제 / SQL시험 32회 시행 (0) | 2020.08.13 |
SQLD 자격증 SQL 기본 및 활용 기출문제 / SQL시험 31회 시행 (0) | 2020.08.09 |