DML이란? DML 개념 SQL SELECT문, INSERT문, UPDATE문, DELETE문, COMMIT문, ROLLBACK문

 

안녕하세요!

이전 포스팅은 SQL이 무엇인지 배워봤는데요,

이번 시간은 DML이 무엇이고 작성은 어떻게 하는지 알려드리겠습니다!

 

DML 의 정의 기억하시나요?

DML은 Data Manipulation Language 의 약자인데요, 데이터를 추출하고 저장하고 삭제하는 등의 데이터를 조작하는 것을 말합니다.

 

DML의 기본패턴에는 4가지로 구성됩니다.

1. 데이터 조회 : SELECT

2. 데이터 입력(저장) : INSERT (신규데이터 입력)

3. 데이터 수정(저장) : UPDATE (기존 데이터 수정)

4. 데이터 삭제 : DELETE

 

자, 그럼 이 4가지를 어떻게 작성하는지 알아봅시다~!

 

첫번째로 SELECT 문입니다.

 SELECT 영어로 선택한다라는 의미로 데이터를 조회할 때 사용한다고 짐작할 수 있겠죠?

다음은 구문형식입니다

 

SELECT 컬럼A, 컬럼B, ...

 FROM 테이블 A, 테이블 B, ...

WHERE 조건들;

 

해석한다면 테이블 A와 테이블 B 에 조건에 맞는 것들을 뽑아 컬럼A, 컬럼B를 보여준다라고 볼 수 있는데요,

무슨말인지 모르시겠다고요?

 

한가지 예를 들어보겠습니다.

 

직원 이라는 테이블이 있다고 가정하고, 직원들의 이름, 입사일, 직원번호 등의 정보가 직원 테이블에 들어 있습니다.

여기서 이름, 입사일, 직원번호는 컬럼이 되는 것이죠

조건은 직원의 입사일이 2019년 이후인 직원의 이름과 입사일을 조회하고 싶다 라고 한다면 아래와 같이 SQL 구문을 작성할 수 있겠습니다.

 

SELECT 이름, 입사일

  FROM 직원

WHERE 입사일 >= '2019-01-01';

 

 

두번째는 INSERT 문입니다.

테이블에 새로운 데이터를 넣을 때 사용하는 것입니다.  INSERT에는 기본적으로 2가지로 유형이 있습니다.

 

1. 테이블의 특정 컬럼만 값을 넣고 싶을 때

 

INSERT INTO 테이블A ( 컬럼A, 컬럼B, ...)

VALUES ( 컬럼A 값, 컬럼B 값, ...);

 

2. 테이블의 전체 컬럼에 값을 넣고 싶을 때

 

INSERT INTO 테이블B

VALUES(컬럼A 값, 컬럼B 값, ...);

 

2가지의 유형 차이점을 아시겠죠?

그리고 주의할 사항이 있습니다. 컬럼 리스트와 들어갈 컬럼 값 순서는 일치해야 하구요, 1의 유형은 컬럼과 컬럼값 수가 맞아야 합니다!

 

그리고 보너스로..

SELECT문을 이용하여 INSERT 하는 방법입니다.

작성법은 다음과 같습니다.

 

INSERT INTO 테이블A (테이블A.컬럼A, 테이블A.컬럼B, ...)

SELECT 테이블B.컬럼C, 테이블B.컬럼D, ...)

 FROM 테이블B

WHERE ... ; 

 

여기서도 유의할 점은 테이블A에 들어갈 컬럼 갯수와 SELECT한 테이블B의 컬럼 갯수가 맞아야하고 순서도 같아야겠죠?

 

세번째는 UPDATE 문입니다. 

UPDATE문은 기존 테이블에 저장되어 있는 데이터를 새로운 값으로 변경할 때 사용됩니다.

 

UPDATE 테이블명

      SET 변경컬럼A = 변경하고자 하는 값,

            변경컬럼B = 변경하고자 하는 값,

            ...

 WHERE 조건절 ... ; 

 

개발하실 때 UPDATE 시 유의할 점은 WHERE 절을 생략해버리면 데이터 전체가 적용되기 때문에 꼭!! 조건절을 확인해주세요.

 

마지막으로 DELETE 문입니다.

데이터를 삭제할 때 사용되면 작성법은 아래와 같습니다.

 

DELETE [FROM] 테이블

WHERE 조건 ...;

 

FROM은 생략이 가능하구요, 특정 조건에 맞는 데이터만 삭제하고자 할 경우는 WHERE 절을 추가합니다. 

DELETE 역시, WHERE 절을 생략하면 테이블 전체 데이터가 삭제되니 항상 주의를 기울여야 합니다!

 

이제 SELECT, INSERT, UPDATE, DELETE 작성법을 알아보았는데요,

다음은 위 구문을 작성하여 실행하더라도 곧바로 테이블에 적용되지 않습니다. 

다음 해야할 작업은 COMMIT (커밋) 을 해야하는데요, 

 

COMMIT 작성법은 쉽습니다.

COMMIT; 

작성하시고 실행하시면 테이블에 반영됩니다.

 

그럼 COMMIT; 을 했는데 다시 돌아가고 싶다! 라고 하실 때는 COMMIT과 반대개념으로 ROLLBACK(롤백)을 하시면 됩니다.

ROLLBACK문은 변경된 데이터들을 변경 전 상태로 되돌리는 역할을 합니다.

ROLLBACK 작성법은 COMMIT과 마찬가지로

ROLLBACK; 

작성하시고 실행하시면 됩니다.

 

 

 

 

다음 포스팅은 트랜잭션에 대해 알아보겠습니다!!

반응형