공부 STUDY/MySQL

SQL DDL, DML, DCL, TCL 이란?

CHANGEL 2024. 4. 6. 10:21

졸작 설계하다가 급 공부하고 쓰는 글

알아보자 ㅋ

 

DDL (Data Definition Language) - 데이터 정의어 

테이블과 같은 데이터의 구조를 정의하는 언어로써

데이터리를 생성 , 수정 삭제 하는등의 데이터의 전체의 골격을 결정

데이터베이스, 테이블등을 생성하는 역활을 합니다. => 데이터 구조와 관련된 명령어들 

종류 역활
CREATE 테이터베이스, 테이블등을 생성하는 역활 
ALTER 테이블을 수정 하는 역활
DROP 테이터베이스, 테이블을 삭제하는 역활
TRUNCATE 테이블을 초기화
RENAME 데이터베이스의 객체 이름을 변경 
  • SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 언어입니다.
  • 데이터 베이스 관리자나 데이터베이스 설계자가 사용 합니다

 

DML (Data Manipulation Language) - 데이터 조작어

정의된 데이터베이스에 입력된 레코드를 조회하거나 수정하거나 삭제하는 등의 역할을 하는 언어를 말합니다.

종류 역활
SELECT  데이터베이스에서 데이터를 검색. (RETRIEVE라고도 함)
옵션
 - ALL : 기본 옵션이므로 별도로 지정하지 않아도 되며, 중복되는 데이터가 있더라도 모두 출력
 - DISTINCT : 중복된 데이터가 있는 경우 1건만 출력
INSERT 데이터를 삽입하는 역활
UPDATE 데이터를 수정하는 역활
DELETE  데이터를 삭제하는 역활 
  • SELECT  - 데이터 조회 /  INSERT,UPDATE,DELETE  - 데이터 변형 
  • 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는데 사용하는 언어 입니다.
  • 데이터베이스 사용자와 데이터베이스 관리 시스템 간의 인터페이스를 제공합니다.

 

DCL(Data Control Language) - 데이터 제어 언어

종류 역활
GRANT 특정 데이터 베이스 사용자들에게 특정 작업에 대한 수행 권환 부여 
(특정 사용자만 특정 작업을 할 수 있도록 지정 가능)
REVOKE  GRANT 명령으로 주어진 액세스 권한을 철회.

데이터베이스에 권한 부여
주의 : 직접 데이터베이스의 테이블에 영향을 미치기 때문에 DCL 명령어를 입력하는 순간.

명령어에 해당하는 작업이 즉시(AUTO COMMIT) 완료된다는 것을 기억


TCL(Transaction Control Language) - 트랜잭션 제어언어

종류 역활
COMMIT 트랜잭션의 작업 결과를 저장 반영 (트랜젝션 완료)
ROLLBACK  데이터베이스를 마지막 COMMIT 된 시점의 상태로 복원
데이터에 대한 변경 내용은 논리적인 트랜잭션으로 그룹화 될 수 있다
SAVEPOINT  ROLLBACK시 트랜잭션에 포함된 전체 작업 복원이 아닌 SAVEPOINT 까지 트랜잭션의 일부만 롤백 가능 
  • 데이터를 제어하는 언어 입니다.
  • 데이터의 보안, 무결성, 회복, 병행 수행제어 등을 정의하는데 사용합니다.