데이터베이스(이하 DB) 명령어는 크게 DCL, DDL, DML, TCL 있다.
데이터를 관리하기 위한 명령어로
사용자 권한(DCL), 데이터 구조(DDL), 데이터 조작(DML), 트랙잰션(TCL)을 관리한다.
각각의 명령어는 몇 개 없지만, 기억해 두면 편하다.
![]() |
데이터베이스 DCL DDL DML TCL |
DCL, DDL, DML, TCL meaning and command types
데이터베이스 개념 DCL, DDL, DML, TCL 뜻과 명령어 종류
과거에 비해 SQL의 활용 범위가 줄어든 느낌이다.
관계형 DB를 사용하는 경우 SQL의 활용범위는 넓어지고 필요성은 높아진다.
MySQL의 경우 `DCL, DDL, DML, TCL`로 구분되고,
단어의 개념을 익히면 명령어들의 개념을 익히기 수월해 진다.
아래는 DB의 개념을 나열해 본 것이다.
- DCL / Data Control Language
- 사용자에게 DB 사용에 대한 권한을 부여한다.
- GRANT
- 사용자 권한 부여
- REVOKE
- 사용자 권한 해제
- DDL / Data Definition Language
- 데이터 객체의 구조를 관리한다.
- CREATE
- 데이터 객체 생성
- ALTER
- 데이터 객체 수정
- TRUNCATE
- 데이터 객체 초기화 ( 데이터 )
- DROP
- 데이터 객체 삭제 ( 구조, 데이터 )
- DML / Data Manipulation Language
- 테이블의 데이터를 관리한다.
- SELECT
- 데이터 조회
- INSERT
- 데이터 생성
- UPDATE
- 데이터 수정
- DELETE
- 데이터 삭제
- TCL / Transaction Control Language
- 데이터 관리의 동작 여부를 관리한다.
- SET TRANSACTION
- 트랜잭션 설정
- COMMIT
- 변경 내용 저장
- ROLLBACK
- 변경 내용 취소
- SAVEPOINT
- 중간 변경 내용 설정
✅DCL / Data Control Language
DB를 설치하고 처음 사용할 때 `root`계정을 이용해 학습을 진행할 것이다.
`DCL ( Data Control Language )`는
DB의 데이터를 조작하는
`사용자의 권한을 추가 ( GRANT ) , 삭제 ( REVOKE ) ` 하는 역할을 한다.
명령어는 다음과 같다.
GRANT 권한목록 ON 데이터베이스.테이블 TO '사용자'@'호스트' [WITH GRANT OPTION];
REVOKE 권한목록 ON 데이터베이스.테이블 FROM '사용자'@'호스트';
✅DDL / Data Definition Language
DDL은 데이터의 구조를 추가, 수정, 삭제하는 역할을 한다.
데이터의 구조는 DB의 스키마 또는 테이블을 생각하면 된다.
또한, 사용자 정보도 포함된다.
데이터 구조를 다루는 명령어는 4가지 정도이다.
`CREATE 생성, ALTER 수정, DROP 삭제, TRUNCATE 초기화`를 사용한다.
CREATE DATABASE 데이터베이스명;
DROP DATABASE
CREATE TABLE 테이블명;
ALTER TABLE 테이블명
TRUNCATE TABLE
DROP TABLE
DROP INDEX
✅DML / Data Manipulation Language
DML은 데이터를 조작하는 역할을 한다.
데이터의 구조가 만들어졌다면 데이터를 입력, 수정, 삭제, 조회가 가능할 수 있어야 한다.
`DML`은 DB를 다루는 사람이라면 자주 사용한다.
보통 CRUD ( Create, Read, Update, Delete )라 불리는 4가지로
`INSERT, SELECT, UPDATE, DELETE`가 그것이다.
이들은 각각 데이터를 입력, 조회, 수정, 삭제 역할을 한다.
SELECT 컬럼명1, 컬럼명2, ... FROM 테이블명
WHERE 조건;
INSERT INTO 테이블명 (컬럼1, 컬럼2, ...)
VALUES (값1, 값2, ...);
UPDATE 테이블명
SET 컬럼1 = 값1, 컬럼2 = 값2, ...
WHERE 조건;
DELETE FROM 테이블명
WHERE 조건;
✅TCL / Transaction Control Language
TCL이 조금 어려울 수 있다.
잘 사용하지 않는 경우들도 있지만, ERP, MES 등의 복잡도 있는 업무 로직인 경우
자주 사용된다.
TCL은 트랜잭션을 다루는 것으로 여러 개의 작업을 하나의 작업 단위로 묶어 실행한다.
하나의 묶음이 하나의 실행 단위이기 때문에
실패시 테이블의 값을 원래 상태로 되돌릴 수 있다.
기본적인 문법은 다음과 같으며 MySQL을 기준으로 한다.
START TRANSACTION;
-- 또는
BEGIN;
COMMIT;
ROLLBACK;
SAVEPOINT 저장지점이름;
ROLLBACK TO 저장지점이름;
SET autocommit = 0; -- 자동 커밋 해제
SET autocommit = 1; -- 자동 커밋 활성화 (기본값)
댓글
댓글 쓰기