728x90
SMALL
- 이번에는 마지막 챕터인 관리 구문 중 DML, TCL에 대해 알아보겠습니다!
DML(Data Manipulation Language)이란?
- DML은 데이터베이스에서 데이터를 조작하는 데 사용되는 언어로, 데이터를 추가, 업데이트, 삭제하는 등의 작업을 수행합니다.
- 주로 사용되는 DML 명령어에는 INSERT, UPDATE, DELETE, 그리고 MERGE가 있습니다.
- INSERT, UPDATE, DELETE의 경우에는 명령어를 실행하고 별도의 COMMIT 명령어를 실행시켜 주어야 데이터가 반영되며 ROLLBACK도 가능합니다.
✅ INSERT
- INSERT 명령어는 테이블에 새로운 행을 추가하는 데 사용됩니다. 기본 구조는 다음과 같습니다.
INSERT INTO 테이블명 (컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...);
-- 또는
INSERT INTO 테이블명 VALUES (전체 컬럼에 입력될 데이터 리스트);
- 첫 번째 SQL의 경우, 명시되지 않은 컬럼에는 NULL 값이 입력됩니다.
- 그러나, PK나 NOT NULL 제약조건이 걸려있는 경우에는 NULL 값이 입력될 수 없으니 주의해야 합니다.
- 두 번째 SQL의 경우, 전체 컬럼에 대한 데이터가 테이블 컬럼 순서대로 빠짐없이 나열되어야 합니다.
- 만약 순서가 뒤바뀌어 데이터 유형이 맞지 않거나 누락된 데이터가 있으면 에러가 발생됩니다.
✅ UPDATE
- UPDATE 명령어는 테이블의 기존 행을 수정하는 데 사용됩니다.
- 하나 이상의 컬럼 값을 업데이트할 수 있으며, WHERE 절을 사용하여 특정 행을 지정할 수 있습니다.
UPDATE 테이블명 SET 컬럼1 = 값1, 컬럼2 = 값2, ... (WHERE 조건);
✅ DELETE
- DELETE 명령어는 테이블에서 하나 이상의 행을 삭제하는 데 사용됩니다.
- WHERE 절을 사용하여 삭제할 특정 행을 지정할 수 있고, WHERE 절이 없다면 전체 행이 삭제됩니다.
- 삭제 데이터에 대한 로그를 남기지 않아도 되는 상황이고, 전체 행을 삭제해야 한다면 DELETE 대신 TRUNCATE를 쓰는 것이 시스템 부하 측면에서 유리합니다.
DELETE FROM 테이블명 (WHERE 조건);
✅ MERGE
- MERGE 명령어는 테이블에 새로운 데이터를 입력하거나 이미 저장되어 있는 데이터에 대한 변경 작업을 한 번에 할 수 있도록 하는 명령어입니다.
- 보통 소스 테이블을 백업할 때 사용하게 되며 USING 절에서 소스 테이블을 선택할 때 조건을 추가해줄 수도 있습니다.
MERGE INTO 대상테이블 USING 소스테이블 ON (조건)
WHEN MATCHED THEN
UPDATE SET 컬럼1 = 값1, 컬럼2 = 값2
WHEN NOT MATCHED THEN
INSERT (컬럼1, 컬럼2) VALUES (값1, 값2);
TCL(Transaction Control Language)이란?
- TCL은 데이터베이스에서 트랜잭션의 실행을 관리하는 데 사용되는 언어입니다.
- 트랜잭션은 하나 이상의 DML 명령어의 집합으로 구성되며, 이런 명령어들은 하나의 작업 단위로 처리됩니다.
✅ 트랜잭션의 특징 4가지!
- 원자성(Atomicity): 트랜잭션 내의 모든 명령은 모두 수행되거나 하나도 수행되지 않아야 합니다.
- 일관성(Consistency): 트랜잭션이 실행되기 전과 후에 데이터베이스의 일관성이 유지되어야 합니다.
- 독립성(Isolation): 동시에 실행되는 트랜잭션들은 서로 영향을 주지 않아야 합니다.
- 지속성(Durability): 트랜잭션이 성공적으로 완료되면, 그 결과는 영구적으로 데이터베이스에 반영됩니다.
✅ COMMIT
- COMMIT 명령어는 하나 이상의 DML 명령어로 구성된 트랜잭션이 성공적으로 완료되었음을 데이터베이스에 알리는 데 사용됩니다.
- COMMIT을 실행하면 트랜잭션 동안 수행된 모든 변경 사항이 데이터베이스에 영구적으로 저장됩니다.
- UPDATE 후 오랜 시간 동안 COMMIT이나 ROLLBACK을 하지 않으면 Lock에 걸려 다른 사용자가 변경할 수 없는 상황이 발생할 수 있습니다.
✅ ROLLBACK
- ROLLBACK 명령어는 현재 트랜잭션에서 수행된 변경 사항을 취소하고, 트랜잭션을 시작하기 전의 상태로 데이터베이스를 복구하는 데 사용됩니다.
- 오류가 발생하거나 데이터의 일관성을 유지하기 위해 트랜잭션을 취소해야 할 경우에 사용됩니다.
✅ SAVEPOINT
- SAVEPOINT 명령어는 트랜잭션 내에서 롤백할 특정 지점을 설정하는 데 사용됩니다.
- SAVEPOINT를 설정하면, ROLLBACK TO 명령어를 사용하여 해당 지점까지만 변경 사항을 롤백할 수 있습니다.
728x90
LIST
'자격증 > SQLD' 카테고리의 다른 글
관리 구문 (2) (0) | 2024.03.07 |
---|---|
SQL 활용 (4) (3) | 2024.03.06 |
SQL 활용 (3) (0) | 2024.03.05 |
SQL 활용 (2) (0) | 2024.03.05 |
SQL 활용 (1) (2) | 2024.02.27 |