본문 바로가기
DB

[DB] SQL DDL, DML, DCL 이란?

by 집도리잡동사니 2022. 9. 8.
반응형

안녕하세요. IT회사에서 일하고 있는 4년차 개발자 입니다.

 

일을 하다보면 기본적일 수 있지만, 처음엔 잘 모를수 있다고 생각하여 적게되었습니다.

용어 명령어 설명
데이터 정의어
(DDL : Data Definition Language)
CREATE 테이블, 뷰, 인덱스 등을 정의하는 명령어
ALTER 테이블에 대한 정의를 변경하는 명령어
DROP 테이블, 뷰, 인덱스 등을 삭제하는 명령어
TRUNCATE 테이블을 초기화 시키는 명령어
데이터 조작어
(DML : Data Manipulation Language)
SELECT 데이터 베이스에 들어있는 데이터를 조회 또는 검색하기 위한 명령어
INSERT 데이터 베이스에 데이터를 저장하기 위한 명령어
UPDATE 데이터 베이스에 저장되어있는 데이터를 변경하기 위한 명령어
DELETE 데이터 베이스에 저장되어있는 데이터를 삭제하기 위한 명령어
데이터 제어어
(DCL : Data Control Language)
COMMIT 명령에 의한 수행된 결과를 실제 물리 디스크에 저장하고, 데이터 베이스 조작 작업이 정상적으로 완료되었음을 관리자에게 알려준다.
ROLLBACK 데이터 베이스 조작 작업이 비정상적으로 종료되었을 때 원래의 상태로 복구함
GRANT 데이터 베이스 사용자에게 특정 사용권한을 부여함
REVOKE 데이터 베이스 사용자의 특정 권한을 취소함

 

DDL 같은경우 테이블이나, 뷰, 인덱스, 패키지 등 초기 객체들을 만들때 사용한다,

DML 데이터를 조작하는 명령어라고 생각하면 된다.

DCL 사용자에게 테이블 SELECT, INSERT, UPDATE, DELETE 권한을 부여하기도 하고 패키지, 프로시저 등을 EXECUTE (실행)권한을 부여하는 GRANT 명령어와 권한을 다시 취소하는 REVOKE 명령어가 있고,

COMMIT, ROLLBACK은 한번의 작업이 모두 정상적으로 완료 되었을때 COMMIT 데이터베이스에 실제 적용하고, ROLLBACK은 한번의 작업안에서 한 작업이라도 비정상적으로 종료(에러)가 났을경우 데이터가 변경되기 전의 상태로 되돌리는 명령어이다.

COMMIT, ROLLBACK관련해서 추가적으로 트랜잭션이 있는데, 한가지 함수를 호출하는데 함수안에서 여러가지 DB 변경이 일어날경우 변경이 일어날때마다 COMMIT을 하면 트랜잭션이 잘못되었다고 말한다. 트랜잭션은 한번의 작업하는 일련의 과정들을 말한다.

 

개발자 일을 하면서 DDL권한 DML 권한 주세요라는 말을 많이하게된다. DDL은 객체 생성, DML은 데이터 조작 이라고 생각하면 편하다.

 

처음 쓰는 블로그여서 말주변이 없지만, 조금씩 같이 공부하면서 말주변을 늘려보겠습니다!

DML관련해서 추가로 CRUD라고도 많이하는데 CREATE, READ, UPDATE, DELETE라고 한다. 처음 일하면서 이런 용어들을 잘 몰라서 많이 공부하고 찾아본 기억들이 있어서 처음 개발공부를 하시거나 취직하신분들에게 도움이 되었으면 하고 작성해봅니다.

 

궁금하신 부분이나 수정해야될꺼 있으면 알려주시면 더 같이 공부하겠습니다.

 

감사합니다.

 

728x90
반응형

'DB' 카테고리의 다른 글

ORACLE GRANT, SYNONYM 권한 , 별칭 주기  (0) 2023.04.14

댓글