SQL의 종류

1. DDL: 데이터 정의 언어

CREATE TABLE users (id SERIAL, name VARCHAR(255));

ALTER TABLE users
ADD COLUMN status ENUM('active', 'inactive') DEFAULT 'active';

DROP TABLE users;

     1) 테이블 생성: CREATE TABLE

     2) 테이블 수정: ALTER TABLE

     3) 테이블 삭제: DROP TABLE

     4) 테이블 초기화: TRUNCATE TABLE

          - 데이터 초기

 

2. DML: 데이터 조작 언어

INSERT INTO users (name) VALUES (?)

SELECT name FROM users WHERE id = ?

SELECT * FROM users
WHERE status = 'active';

UPDATE users SET name = ? WHERE id = ?

     1) 데이터 선택: SELECT

     2) 조건 설정: WHERE

     3) 정렬: ORDER BY

     4) 그룹화: GROUP BY

     5) 결합: JOIN

     6) 추가: INSERT INTO

     7) 수정: UPDATE

     8) 삭제: DELETE FROM

 

3. DCL: 데이터 제어 언어

     1) 권한 부여: GRANT

     2) 권한 삭제: REVOKE

 

4) TCL

     1) 새로운 트랜잭션 생성 및 시작: BEGIN     // START TRANSACTION과 동일

     2) 하나의 트랜잭션 성공적으로 종료(DB 일관성있는 상태에 있음): COMMIT

          - COMMIT 시 수행한 트랜잭션이 로그에 저장된다.

     3) 하나의 트랜잭션 비정상적으로 종료(트랜잭션의 원자성 깨짐)되어 트랜잭션의 연산 결과 취소: ROLLBACK

 

트랜잭션

: DB 상태를 변화시키기 위해 수행하는 작업 단위이다.

- 데이터 조회, 생성, 수정, 삭제 후 최종 결과물을 만들 때까지의 하나의 작업을 트랜잭션으로 관리할 수 있다.

- 데이터 처리 중 문제 발생 시 변경 사항을 되돌린다.(rollback)

- 모든 단위 기능(조회, 수정 등...)이 성공해야 트랜잭션이 성공된다.(commit)

 

특징

1) 원자성

- 트랜잭션이 db에 모두 반영되거나 전혀 반영되지 않아야한다.

2) 일관성

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

     - 트랜잭션 진행 동안에 db 변경 시에도 바뀐 db가 아니라 처음 진행 시 참조한 db로 진행된다.

3) 독립성

- 복수의 트랜잭션이 동시 실행돼도 서로의 연산에 관여할 수 없다.

'Language > SQL' 카테고리의 다른 글

내장형 H2 데이터베이스 사용  (0) 2025.06.26

+ Recent posts