SQLD 공부
SQLD를 준비하면서 중요하다고 생각하는 일부를 정리하였습니다.
SQL문장들의 종류
DML(데이터 조작어)
- 원하지 않는 데이터를 삭제하거나 수정하는 것들의 명령어
- SELECT: 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어
- INSERT: 테이블에 새로운 행을 집어 넣거나
- UPDATE: 테이블의 특정한 행을 수정/변경
- DELETE: 테이블에서 행을 제거
DDL(데이터 정의어)
- 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어
- CREATE: 테이블 생성하기 위한 명령어
- ALTER: 테이블 수정을 위한 명령어
- DROP: 테이블을 삭제하기 위한 명령어
- RENAME: 테이블 명을 변경하는 명령어
DCL(데이터 제어어)
- 데이터 베이스에 접근하고 객체들을 사용하도록 권하는 주고 회수하는 명령어
- GRANT: 데이터베이스 사용 권한을 주는 명령어
- REVOKE: 데이터베이스 사용 권한을 회수하는 명령어
TCL(트랜젝션 제어어)
- 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위 별로 제어하는 명령어
- COMMIT: 트랜젝션의 처리 과정을 정상적으로 처리하겠다고 확정하는 명령어
- ROLLBACK: 트랜젝션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌리는 명령어
DROP VS TRUNCATE VS DELETE
DROP
- DDL
- Rollback 불가능
- Auto Commit
- 테이블이 사용했던 Storage를 모두 Release
- 테이블의 정의 자체를 완전히 삭제함
TRUNCATE
- DDL (일부 DML 성격 가짐)
- Rollback 불가능
- Auto Commit
- 테이블이 사용했던 Storage 중 최초 테이블 생성시 할당된 Storage만 남기고 Release
- 테이블을 최초 생성된 초기상태로 만듬
DELETE
- DML
- Commit 이전 Rollback
- 사용자 Commit
- 데이터를 모두 DELETE해도 사용했던 Storage는 Release되지 않음
- 데이터만 삭제
데이터베이스 트랜잭션의 4가지 특성
- 원시성(atomicity): 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야 한다.
- 일관성(consistency): 트랜잭션이 실행되지 전의 데이터 베이스 내용의 잘못 되어 있지 않다면 트랜잭션이 실행된 이후에도 데이터베이스의 내용이 잘못이 있으면 안된다.
- 고립성(isolation): 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안된다.
- 지속성(durability): 트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 데이터베이스의 내용은 영구적으로 저장된다.