저번 포스팅에서는 DDL에 대해 알아보았었죠. 그 명령어들의 기능이 테이블을 정의해주는 것이라면 이번에 배울 DML은 어떤 역할을 하게 될까요?
함께 알아보시겠습니다.

(출처: BZFARhttps://bit.ly/3K598B2)
여태까지 기존에 있던 테이블의 데이터들을 조회하는 데에 Select문을 썼습니다. 그리 질리도록 본 Select 문은 DML 명령어의 일종으로 이는 데이터를 읽어들이는 역할을 합니다. 이처럼 DML은 데이터를 조회하고 또는 변형하는 역할을 해주는데요.
다른 명령어들 또한 이전에 간략히 알아보았었죠. 하지만 사용해본 적은 없으니 이번에는 코드로 보여드리도록 하겠습니다.
Insert : 데이터 생성
전에 알려드렸듯, Insert 명령어는 데이터를 생성합니다. 이에 대한 작성 방법은 아래와 같습니다.

이처럼 컬럼을 지정해주지 않으면 전체 컬럼의 값을 입력해야 하고, 지정해주면 지정해준 컬럼의 데이터 값만 기입하면 됩니다.
여기에 쓰이는 values()는 컬럼 안 값을 기입할 때 쓰입니다. into는 테이블 명을 명시할 때 쓰이고요.
values(값 기입) / into : 데이터가 들어갈 테이블 명시
코드로 볼까요?

예시를 들어보겠습니다. 현재 위와 같이 sample이라는 테이블이 생성되었습니다.
이 테이블에 아래와 같은 값을 기입하려고 합니다. 첫번째만 보여드리겠습니다.

보시면 Insert into 를 통해 SAMPLE이라는 테이블에 기획실 데이터를 넣어준 게 보이시죠? 이를 출력하면 이렇게 나옵니다.

이렇게 성공적으로 데이터가 생성된 걸 보실 수 있습니다.
Update : 데이터 수정
Update 명령어는 데이터를 수정해줍니다. 이에 대한 작성 방법은 아래와 같습니다.

Insert문과 비슷하지만 다른 명령어들이 붙어있죠?
이 set은 값을 수정해주는 역할을 합니다. 컬럼을 지정해줌으로서 다른 값을 대입시키는 거죠.
set : 변환할 값 지정
그리고 Where 조건문을 통해서 어느 데이터를 변환시킬건지를 지정해주시면 됩니다.
코드로 볼까요?

위의 Sample 예시와 같은 테이블입니다. 넣는 컬럼 안에 DEPTNO가 있었죠?
그 부분에서 그 부서 번호가 30인 사람을 50으로 바꿔주려고 합니다. 그리 하여 set에서 50을 지정하고 WHERE 조건문을 통해 30인 사원을 지목해준 것을 보실 수 있습니다.
그리하면 결과 값은 이리 변환되어 나옵니다.


Delete : 데이터 삭제
Delete 명령어는 말 그대로 데이터를 삭제해주는 역할을 합니다. 작성 방법은 아래와 같습니다.

이 역시 어느 데이터를 삭제할 지 지정해줘야 하기 때문에 WHERE문이 붙습니다.
코드로 볼까요?
조금 전에 Sample 테이블에서 영업부라는 부서가 50으로 값이 변환되었었죠. 하지만 이번에는 이 데이터를 한번 삭제해봅시다.

쿼리문은 위처럼 작성하시면 됩니다. Sample 이라는 테이블에서 영업부인 데이터가 들어간 열을 삭제해주도록 합시다.
그러하면 Select문을 통해 불러올 때, 이리 삭제된 값이 나타납니다.

delete vs. truncate vs. drop
여태까지 이러한 삭제 명령어들을 알아보았습니다.
그럼 이것들의 공통된 기능은 데이터 / 테이블 삭제인데 차이점은 뭐라고 간단히 설명할 수 있을까요?
각각의 특성들에 대해 알아보겠습니다.
1. Drop
우선, DDL 명령어의 Drop문 입니다.
> Drop table 테이블명;
이 명령문의 작성 방법은 위와 같으며, 테이블의 존재 자체를 삭제하게 합니다. 아예 테이블을 제거해버리는 것임에 다름 없죠.
그리고 무엇보다도, 지웠다는 흔적(log)도 남지 않습니다.
2. truncate
DDL 명령어의 Truncate에 대해 보겠습니다.
truncate table 테이블명;
작성 방법이 단순히 다른 것보다는 drop에서 더 큰 차이점이 있습니다.
Truncate는 데이터만 홀라당 삭제하고, 이는 안에 들어있던 모든 기록들을 삭제해주는 명령어입니다. 이는 테이블을 drop했다가 create해주는 작업을 통합했다고 볼 수 있는데요. 테이블 자체가 아닌, 모든 행만 삭제하고 싶은 것이라면 이 명령어를 사용하시는 걸 추천합니다.
하지만 이 역시, 로그가 남지 않습니다.
3. delete
그럼 DML문의 delete는 어떨까요?
작성 방법도 위에서 보시다시피 완전히 다르죠. 하지만 여기서는 데이터를 조회해주는 역할로서 결정적인 차이가 있습니다.
조건 해당만 / 전체 지우기 둘다 가능!
이 Delete 문은 한줄한줄씩 삭제하는 방식을 갖고 있습니다. 따라서, 전체를 지울때에는 그리 효율적이지 않지만 더 세심하게 데이터를 관리해줄 수 있다는 장점이 있습니다.
또한, 삭제했다는 로그를 남겨서 언제든 다시 불러올 수 있습니다.
이로서 DML의 명령어들에 대한 설명을 마칩니다. 다음 포스팅에서는 커밋과 롤백에 대해서 알아보겠습니다.