반응형
# DML (Data Manipulation Language)
- SELECT (조회) / INSERT (입력) / UPDATE (수정) / DELETE (삭제)
- 데이터베이스에 저장된 데이터를 조회, 입력, 수정, 삭제하는 데 사용하는 질의어.
- 비절차적데이터 조작어.
- 사용자가 무슨(What) 데이터를 원하는지만을 명세.
- 데이터 부속어 (Data Sub Language) : C언어와 같은 호스트 프로그램 속에 삽입되어 사용되는 DML.
## DML 유형
1. SELECT
- 데이터 조회.
- 테이블을 구성하는 레코드 중 전체 또는 조건을 만족하는 레코드를 조회.
SELECT 문법)
SELECT [ALL | DISTINCT] 컬럼명 AS 별명
FROM 테이블명
=>
- SELECT 절에서 명시한 컬럼을 FROM 절의 테이블에서 조회.
- ALL, DISTINCT 키워드는 생략 가능
(생략 시 기본적으로 ALL로 인식)
- ALL : 중복되는 데이터도 모두 조회(Default)
- DISTINCT : 중복된 데이터가 있는 경우 중복 제거하여 1건만 조회.
- AS : AS 키워드를 사용해서 컬럼의 별명(ALIAS) 변경 가능.
(AS 생략 가능)
- SELECT 절에서 WILDCARD(*) 및 ESCAPE 사용 가능.
2. INSERT
- 데이터 입력.
- 테이블에 새로운 레코드를 입력할 때 사용.
INSERT 문법 1)
INSERT INTO 테이블명(컬럼명) VALUES(입력값);
=>
- 데이터를 입력하고자 하는 테이블의 컬럼을 정의하여 데이터 입력.
- 컬럼과 입력값은 1:1 매핑, 정의하지 않은 컬럼은 디폴트로 NULL 입력.
INSERT 문법 2)
INSERT INTO 테이블명 VALUES (입력값);
=>
- 컬럼 생략하는 경우 모든 컬럼을 대상으로 데이터 입력.
- 입력값은 테이블의 컬럼 수와 같아야 함.
3. UPDATE
- 데이터 수정.
- 테이블에 있는 레코드 중 특정 레코드의 내용을 변경할 때 사용.
UPDATE 문법)
UPDATE 테이블명
SET 컬럼명 = 입력값
WHERE 조건;
=>
- UPDATE 문의 테이블에서 SET 절의 컬럼을 입력값으로 수정.
- WHERE 절에서 데이터 수정 조건을 정의.
4. DELETE
- 데이터 삭제.
- 테이블에 있는 레코드 중 특정 레코드를 삭제할 때 사용.
DELETE 문법)
DELETE [FROM] 테이블명
WHERE 조건;
=>
- DELETE 문의 테이블에서 WHERE 절의 조건에 맞는 데이터 삭제.
- FROM 키워드 생략 가능.
# TCL (Transaction Control Language)
- COMMIT / ROLLBACK / SAVEPOINT
- 트랜잭션 제어 명령어.
- 트랜잭션 : 업무 처리를 위한 데이터베이스의 논리적인 작업의 단위, 하나의 트랜잭션은 한 개 이상의 연산으로 이루어질 수 있고 해당 연산들은 완전히 처리 되거나 아예 한 개도 처리되지 않아야 한다. (All or Nothing)
1. COMMIT
- 올바르게 수행된 트랜잭션의 결과를 데이터베이스에 반영.
COMMIT 문법)
INSERT INTO EMP
VALUES (102, 'AAA', 15, 100);
COMMIT;
=>
- INSERT 문을 이용하여 EMP 테이블에 데이터 입력.
- COMMIT 을 통해트랜잭션을 완료하고 데이터를 데이터베이스에 반영.
- SQL Server : 기본적으로 AUTO COMMIT 모드, DML 구문이 성공이면 자동으로 COMMIT수행되고 오류가 발생하면 자동으로 ROLLBACK 이 수행된다. (AUTO COMMIT OFF인 경우 DDL 수행되어도 묵시적으로 COMMIT수행되지 않음)
- ORACLE : 기본적으로 AUTO COMMIT OFF로 설정된 상태에서 DDL 수행 시 묵시적으로 COMMIT 수행
2. ROLLBACK
- 문제 발생 시 하나의 트랜잭션을 취소.
ROLLBACK 문법)
UPDATE EMP
SET EMP_NAME = 'AAAA'
WHERE EMP_NAME = 'B'
ROLLBACK;
=>
- UPDATE 문장으로 EMP 테이블에서 EMP_NAME이 'B' 이면 'AAAA' 로 변경.
- ROLLBACK 명령으로 트랜잭션을 취소하여 UPDATE 문장이 데이터베이스에 반영되지 않도록 함.
- SQL Server : CREATE TABLE도 트랜잭션의 범주에 포함되어ROLLBACK 가능.
3. SAVEPOINT
- 하나의 트랜잭션을 작게 분할하여 저장하는 기능을 수행.
SAVEPOINT 문법)
SAVEPOINT SP1;
INSERT INTO EMP VALUES(100, 'AAA', 30);
SAVEPOINT SP2;
UPDATE EMP
SET EMP_NAME = 'AAAA'
WHERE EMP_NAME = 'B'
ROLLBACK TO SP2;
=>
- SAVEPOINT 저장점명; 으로 SP1 저장점 지정.
- INSERT 문으로 EMP 테이블에 데이터 입력.
- SAVEPOINT 저장점명; 으로 SP2 저장점 지정.
- UPDATE 문으로 EMP 테이블 데이터 업데이트.
- ROLLBACK TO 저장점명; 으로 트랜잭션을 취소.
(SP2로 롤백하여 UPDATE 문의 실행은 데이터베이스에 반영되지 않도록 함)
반응형
'자격증 > SQLD & SQLP 자격증' 카테고리의 다른 글
주 식별자 도출 기준 (0) | 2022.04.20 |
---|---|
스칼라 서브쿼리, 인라인 뷰, 뷰 (0) | 2022.03.29 |
엔티티의 다양한 정의 (0) | 2022.03.21 |
데이터 모델링의 다양한 정의 (0) | 2022.03.21 |
LIKE와 같이 사용하는 와일드카드 문자 (0) | 2022.03.08 |