▶ DML (Data Manipulation Language) [ 데이터 조작 언어 ]
- 테이블에 값을 삽입하거나(INSERT), 수정하거나(UPDATE), 삭제하는(DELETE) 구문
▶ INSERT
- INSERT : 테이블에 새로운 행을 추가하는 구문
- 작성 방법
1) INSERT INTO 테이블명 VALUES(데이터1, 데이터2, ...);
- 테이블에 모든 컬럼에 대한 값을 INSERT할 때 사용
- INSERT하고자 하는 컬럼이 모든 컬럼인 경우, 컬럼명 생량 가능
- 단, 컬럼의 순서를 지켜서 VALUES에 값을 기입해야 함
2) INSERT INTO 테이블명(컬럼명, 컬럼명, 컬럼명) VALUES(데이터1, 데이터2, 데이터3, ...);
- 테이블에 내가 선택한 컬럼에 대한 값만 INSERT할 때 사용
- 선택 안 된 컬럼은 값이 NULL이 들어감
▶ UPDATE
- UPDATE : 테이블에 기록된 컬럼의 값을 수정하는 구문
- 작성 방법
- UPDATE 테이블명 SET 컬럼명 = 바꿀 값 [ WHERE 컬럼명 비교연산자 비교 값 ];
※ [주의] ★ ★ 조건절을 설정하지 않고 UPDATE 구문 실행 시, 모든 행의 컬럼 값 변경
※ 여러 컬럼을 한번에 수정할 때는 콤마( , )로 컬럼을 구분 - ★ ★ UPDATE 시에도 서브쿼리 사용 가능
- 작성 방법
- UPDATE 테이블명 SET 컬럼명 = (서브쿼리)
▶ DELETE
- 테이블의 행을 삭제하는 구문
- 작성 방법
- DELETE FROM 테이블명 [ WHERE 조건설정 ]; - ★★ WHERE절 조건 미작성 시 모든 행이 삭제됨!
▶ TRUNCATE ( DDL / DML 아님 )
- 테이블의 전체 행을 삭제하는 DDL(Data Definition Language - 데이터 정의 언어)
- DELETE보다 수행 속도가 더 빠름
- ★ ★ ROLLBACK을 통해 복구 불가
▶ TCL ( TRANSACTION CONTROL LANGUAGE : 트랜잭션 제어 언어 )
- COMMIT (트랜잭션 종료 후 저장) / ROLLBACK (트랜잭션 취소) / SAVEPOINT (임시저장)
- 트랜잭션은 DML과 관련 있음
※ DML : 데이터 조작 언어로 데이터의 삽입, 수정, 삭제
▶ TRANCSACTION이란?
- 데이터베이스의 논리적 연산 단위
- 데이터 변경 사항을 묶어 하나의 트랜잭션에 담아 처리함
- 트랜잭션의 대상이 되는 데이터 변경 사항 : INSERT, UPDATE, DELETE (DML)
- 예를 들어,
INSERT 수행 시 바로 DB 반영 X
INSERT 수행 → 트랜잭션에 추가 → COMMIT → DB 반영 O
INSERT 10번 수행 → 1개 트랜잭션에 10개 추가 → ROLLBACK → DB 반영 X - 1) COMMIT : 메모리 버퍼(트랜잭션)에 임시 저장된 데이터 변경 사항을 DB에 반영
- 2) ROLLBACK : 메모리 버퍼(트랜잭션)에 임시 저장된 데이터 변경 사항을 삭제하고
"마지막 COMMIT 상태"로 돌아감 - 3) SAVEPOINT : 메모리 버퍼(트랜잭션)에 저장 지점을 정의하여
ROLLBACK 수행 시 전체 작업을 삭제하는 것이 아닌
저장 지점까지만 일부 ROLLBACK - [ SAVEPOINT 사용법 ]
SAVEPOINT 포인트명1;
...
SAVEPOINT 포인트명2;
...
ROLLBACK TO 포인트명1; [ 포인트1 지점까지 데이터 변경사항 삭제 ]
'SQL > 기본 개념' 카테고리의 다른 글
VIEW / SEQUENCE / INDEX (0) | 2024.12.16 |
---|---|
DDL (DATA DEFINITION LANGUAGE) _ 데이터 정의 언어 (0) | 2024.12.16 |
SUBQUERY(서브쿼리) (0) | 2024.12.16 |
JOIN (0) | 2024.12.16 |
GROUP BY / HAVING (0) | 2024.12.16 |