DDL(Data Definition Language) - 데이터 정의어
테이블과 같은 데이터의 구조를 정의하는 언어로써 데이터의 전체의 골격을 결정하고 데이터베이스, 테이블 등을 생성하는 역할을 한다.
- SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용한다.
- 데이터베이스 관리자나 설계자가 사용한다.
종류 | 역할 |
CREATE | 데이터베이스, 테이블 등 생성 |
ALTER | 테이블 수정 |
DROP | 데이터베이스, 테이블 삭제 |
TRUNCATE | 테이블 초기화 |
RENAME | 데이터베이스 객체 이름 변경 |
DML(Data Manipulation Language) - 데이터 조작어
정의된 데이터베이스에 입력된 데이터를 수정하거나 삭제하는 등의 역할을 한다.
- SELECT : 데이터 조회 / INSERT, UPDATE, DELETE : 데이터 변형
- 데이터베이스 사용자가 응용프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는 데 사용한다.
- 데이터베이스 사용자와 데이터베이스 관리 시스템 간의 인터페이스를 제공한다.
종류 | 역할 |
SELECT | 데이터베이스에서 데이터 검색(= RETRIEVE) - ALL : Default값으로 중복되는 데이터가 있더라도 모두 출력함 - DISTINCT : 중복된 데이터가 있는 경우 1건만 출력함 |
INSERT | 데이터 삽입 |
UPDATE | 데이터 수정 |
DELETE | 데이터 삭제 |
DCL(Data Control Language) - 데이터 제어 언어
데이터베이스에 접근하고 객체들을 사용하도록 권한을 부여하고 철회하는 역할을 한다.
※주의※
직접 데이터베이스의 테이블에 영향을 미치기 때문에 DCL 명령어를 입력하는 순간, 명령어에 해당하는 작업이 즉시 완료(AUTO COMMIT) 된다.
종류 | 역할 |
GRANT | 특정 데이터베이스 사용자들에게 특정 작업에 대한 수행 권한 부여 (특정 사용자만 특정 작업을 할 수 있도록 지정 가능) |
DEVOKE | GRANT 명령으로 주어진 액세스 권한을 철회 |
TCL(Transaction Control Language) - 트랜잭션 제어 언어
데이터베이스의 데이터를 제어하는 언어로써, 데이터의 보안, 무결성, 회복, 병행, 수행제어 등을 정의하는 역할을 한다.
논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 트랜잭션 별로 제어한다.
종류 | 역할 |
COMMIT | 트랜잭션의 작업 결과를 저장, 반영 (트랜잭션 완료) |
ROLLBACK | 데이터베이스를 마지막 COMMIT된 시점의 상태로 복원 데이터에 대한 변경 내용은 논리적인 트랜잭션으로 그룹화 |
SAVEPOINT | ROLLBACK시 트랜잭션에 포함된 전체 작업 복원이 아닌 SAVEPOINT까지 트랜잭션의 일부만 ROLLBACK 가능 |
2024.02.16 - [DB] - Transaction(트랜잭션)
ROLL 객체
- ROLE의 종류
CONNECT : DB 접속 권한
RESOURCE : 테이블이나 인덱스를 생성할 수 있는 권한
CREATE VIEW : 뷰 생성 권한
DBA : 모든 권한(관리자)
참조
DDL, DML, DCL 이란? - Java Holic 님
'DB' 카테고리의 다른 글
MySQL vs PostgreSQL (0) | 2024.03.22 |
---|---|
Transaction(트랜잭션) (0) | 2024.02.16 |