본문 바로가기
데이터 분석

[SQLD] 개념정리 - SQL 기본(1): DML, DDL, DCL, TCL, 트랜잭션

by pm-ing 2023. 9. 7.

✅SQL문의 종류 🌟

종류 명령어
데이터 조작어
(DML : Data Manipulation Language)
SELECT
INSERT, UPDATE, DELETE
데이터 정의어
(DDL: Data Definitnion Language)
CREATE, ALTER, DROP, RENAME
데이터 제어어
(DCL: Date Control Language)
GRANT, REVOKE
트랜잭션 제어어
(TCL: Transaction Control Language)
COMMIT, ROLLBACK

 

DDL(Data Definition Language) 데이터 타입

타입 설명
CHAR(L) 고정 길이 문자열. 고정 길이를 가지고 있어서 할당된 변수의 값이 L값보다 작을 경우 그 차이만큼 공백으로 채워짐
VARCHAR2(L) 가변 길이 문자열. L만큼의 최대 길이를 가짐. L값보다 작을 경우에도 해당하는 값만큼만 공간을 차지
NUMBER(L,D) 정수, 실수를 저장함. L값은 전체자리 수, D값은 소수점 자리 수
DATE 날짜와 시각정보. "년월일시분초"를 표현

선언한 유형이 아닌 다른 종류의 데이터가 들어오려고 하면 에러 발생.

 

CREATE TABLE

테이블 명명 규칙

- 단수형

- 중복x

- 테이블 생성문 끝은 ';'로 끝나야 함

- 테이블 유형은 반드시 지정되어야 함

- 테이블명, 컬럼명은 반드시 문자로 시작

- 문자는 A-Z, a-z, 0-9, _, $, #만 허용됨

 

ALIAS 지정

: AS를 이용하여 컬럼의 이름을 지정 가능(테이블에서는 AS 사용 불가)

: AS는 생략 가능함

ex. SELECT A.CERTI_CD AS 자격증 코드

FROM SQLD.TB_CERTI A;

-> CERTI_CD라는 컬럼이 '자격증코드'라는 컬럼으로 지정하여 출력됨

 

ERD(Entity Relationship Diagram)

: 테이블 간 서로이 상관 관계를 그림으로 도식화한 것.

: ERD 구성 요소 - 엔터티, 관계, 속성 (현실 세계의 데이터는 이 3가지 구성요소로 모두 표현이 가능)

 

✅TCL(Transaction Control Language)

트랜잭션

:데이터베이스의 논리적 연산단위.

: 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함됨. 분할할 수 없는 최소의 단위. -> 전부 적용 or 전부 취소(all or nothing!!!)

 

트랜잭션 특징 -> ACID로 암기!!

- 원자성(Atomicity): 트랜잭션에서 정의된 연산들은 모두 성공적으로 끝나거나 모두 실패해야 함

- 일관성(Consistency): 실행전에 DB에 잘못된 내용이 없다면 실행된 이후에도 잘못된 내용이 있으면 안됨.

- 고립성(Isolation): 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안됨.

- 지속성(Durability): 트랜잭션이 성공적으로 수행되면, 그 내용은 영구적으로 저장

 

트랜잭션 요점

1) 테이블에 데이터의 변경을 발생시키는 INSERT, UPDATE, DELETE 수행 시 변경되는 데이터의 무결성을 보장하는 것이 COMMIT과 ROLLBACK의 목적

2) COMMIT: 변경된 데이터를 테이블에 영구적으로 반영하라는 의미

3) ROLLBACK: 데이터 변경을 사전에 지정한 저장점까지만 롤백하라는 의미

4) COMMIT, ROLLBACK 상관없이 트랜잭션 처리가 일어나는 상황

  • DDL 문장을 실행하면 그 전후 시전에 자동으로 커밋
  • DML 문장 이후에 커밋 없이 DDL 문장이 실행되면 DDL 수행 전에 자동으로 커밋
  • DB를 정상적으로 접속 종료하면 자동으로 트랜잭션이 커밋
  • 애플리메이션 이상 종료로 DB와 접속이 단절되었을 때에는 트랜잭션이 자동으로 롤백

 

 

✅SAVE POINT

: SAVE POINT를 정의하면 ROLLBACK할 때 트랜잭션에 포함된 전체 작업을 롤백하는 것이 아니라 현 시점에서 SAVE POINT까지 트랜잭션의 일부만 롤백할 수 있음

: 복잡한 대규모 트랜잭션에서 에러가 발생했을 때 SAVEPOINT까지의 트랜잭션만 롤백하고, 실패한 부분에 대해서만 다시 실행

 

반응형