데이터베이스에서의 DML은 Data Manipulation Language로 몇 개의 데이터가 처리(조작)되었는지 숫자로 결과를 반환합니다. 이 전에 포스팅했던 Select문은 데이터를 반환합니다.
이 둘의 차이점에 대해서 얘기하자면,
DML은 insert/update/delete 문에 속하며 말 그대로 데이터를 조작하는 명령어입니다.
반면 SELECT 문은 질의로 따로 분류하며 데이터베이스에서 정보를 조회하고 검색합니다.
데이터 조작언어(DML)
데이터 조작을 위해서는 CRUD 연산이 가능해야 합니다.
- 데이터의 생성(Create)
- 읽기(조회 또는 검색, Read)
- 갱신(update)
- 삭제(delete)
위의 네 가지 연산이 가능해야 되는데, SQL의 DML은 이 네 가지 명령문을 모두 수행합니다.
insert 명령
1. 테이블에 레코드를 컬럼 순서대로 삽입합니다.
insert into <테이블 이름> values(..)
2. 컬럼 명을 지정하여 삽입합니다.
insert into <테이블 이름> (컬럼명1,컬럼명2,컬럼명3…) values(컬럼값1,컬럼값2…컬럼값N)
3. select 결과를 삽입합니다.
insert into <테이블 이름> select 문
- ex) insert into comp_student select sno,sname,year from student where dept=”컴퓨터”;
update 명령
레코드의 값을 변경할 때 쓰는 명령어입니다.
update <테이블 명> set 컬럼명1=컬럼값1,…컬럼명N=컬럼값N where 조건식
- ex) update student set year=year+1, where year=1;
delete 명령
테이블 내의 행을 삭제하고 테이블 정의는 유지할 때 쓰는 명령어입니다.
1. 테이블 내의 모든 행(레코드)을 삭제합니다.
delete <테이블 이름>
2. 조건에 해당하는 행(레코드)들만 삭제합니다.
delete <테이블 이름> where 조건식
commit / rollback 명령
commit, rollback 명령어는 트랜잭션 즉, 실행 작업의 단위를 조작할 때 쓰는 명령어입니다.
1. commit
commit은 트랜잭션(transaction) 커밋 즉, 성공적인 종료를 나타냅니다.
예를 들어, create에서 트랜잭션 커밋이 되고 select에서 새로운 명령이 시작되는 것을 생각하면 됩니다.
즉, 이전 commit 시점부터 현재 commit 명령 실행 시점까지의 변경 내역을 디스크에 기록합니다.
한마디로 말하자면 올바르게 적용된 데이터를 데이터베이스에 반영하는 것을 의미합니다.
2. rollback
이전 commit 시점부터 현재 rollback 명령 실행 시점까지의 변경 내역을 모두 취소합니다.
현재 트랜잭션을 전부 취소하고 데이터가 조작된 것이 다시 복구된다는 의미입니다. (디스크 기록을 지운다는 뜻)
- 서버 또는 클라이언트 프로그램이 비정상 종료되면 현재까지의 작업 내용은 자동으로 rollback됩니다.
한마디로 말하자면, 트랜잭션 시작 이전의 상태로 되돌리는 것을 의미합니다.
'Computer Science > DB' 카테고리의 다른 글
[데이터베이스] 4. SQL - SELECT문을 사용하여 데이터 조회하기 (0) | 2024.08.20 |
---|---|
[데이터베이스] 3. SQL은 무엇일까? (0) | 2024.07.29 |
[데이터베이스] 2. 데이터베이스 관리 시스템(DBMS) 이란? (0) | 2024.07.16 |
[데이터베이스] 1. 데이터베이스의 개념 및 구조 (1) | 2024.05.11 |