본문 바로가기

Database

[SQL] DQL, DML, DDL, DCL, TCL

SQL (Structured Query Language)

 The database language by the use of which we can perform certain operations on the existing database and also we can use this language to create a database.

 

한마디로 데이터베이스 언어라고 보면 된다.

즉 테이블에 대한 명령어와 같은 것이다.

 

SQL은 일반적으로 5가지 카테고리로 나뉘어진다.

 

https://www.geeksforgeeks.org/sql-ddl-dql-dml-dcl-tcl-commands/

 

1. DDL – Data Definition Language
2. DQL – Data Query Language
3. DML – Data Manipulation Language
4. DCL – Data Control Language
5. TCL – Transaction Control Language

 

DDL (Data Definition Language)

Schema 내의 객체를 정의하고 관리할 때 사용되는 쿼리문을 의미.

 

  • CREATE
    • 이 명령은 데이터베이스 또는 해당 개체(예: 테이블, 인덱스, 함수, 보기, 저장 프로시저 및 트리거)를 만드는 데 사용됩니다.
  • DROP 
    • 이 명령은 데이터베이스에서 개체를 삭제하는 데 사용됩니다.
  • ALTER 
    • 데이터베이스의 구조를 변경할 때 사용됨. Column(열) 변경, 추가, 삭제, 수정
  • TRUNCATE
    • 레코드에 할당된 모든 공간이 제거되는 것을 포함하여 테이블에서 모든 레코드를 제거하는 데 사용됨
    • 모든 Row(행)의 데이터와 존재하던 공간까지 모두 제거

 

DQL (Data Query Language)

쿼리(Query)의 사전적 의미는 묻다, 질문하다라는 의미

데이터베이스 서버에게 데이터를 달라고 요청하는 쿼리문을 의미.

 

  • SELECT
    • 데이터베이스에서 데이터를 검색할 때 사용

 

DML (Data Manipulation Language)

데이터를 조작하는 쿼리문

대부분의 SQL 문이 포함됨

DCL (Data Control Language) 또한 데이터 및 데이터베이스에 대한 액세스를 제어하는데 DML 문으로 그룹화됨.

 

  • INSERT
    • 테이블에 데이터를 삽입할 때 사용
  • UPDATE
    • 테이블 내의 기존 데이터를 업데이트하는 데 사용
  • DELETE
    • 데이터베이스 테이블에서 레코드를 삭제하는 데 사용
  • LOCK
    • 테이블 동시성 제어

 

DCL (Data Control Language)

데이터베이스 시스템의 권한, 사용 권한 및 기타 제어를 처리하는 GRANT 및 REVOKE와 같은 명령이 포함

 

  • GRANT
    • 사용자에게 데이터베이스에 대한 액세스 권한을 부여
  • REVOKE
    • GRANT 명령어로 부여된 사용자의 접근 권한을 철회하는 명령어

 

TCL (Transaction Control Language)

트랜잭션은 일련의 작업을 단일 실행 단위로 그룹화합니다. 각 트랜잭션은 특정 작업으로 시작하여 그룹의 모든 작업이 성공적으로 완료되면 종료됩니다. 작업 중 하나라도 실패하면 트랜잭션이 실패합니다. 따라서 트랜잭션에는 성공 또는 실패라는 두 가지 결과만 있습니다.

 

  • BEGIN
    • 트랜잭션을 엶
  • COMMIT
    • 트랜잭션을 커밋
  • ROLLBACK
    • 오류 발생 시 트랜잭션을 롤백
  • SAVEPOINT
    • 트랜잭션 내 세이브 포인트를 설정

 

DDL vs. DML

DDL의 경우 데이터 구조를 정의하는 데이터 정의 언어

DML의 경우 데이터 자체를 조작하는 데 사용되는 데이터 조작 언어 - 내용 변경

https://www.geeksforgeeks.org/difference-between-ddl-and-dml-in-dbms/

'Database' 카테고리의 다른 글

[DB] 프로젝트 데이터베이스 모델링 기록  (14) 2023.07.24
[Database] Cluster  (0) 2023.06.21
[Database] RAC, HA  (0) 2023.06.21