본문 바로가기
📒 기술 또는 개념/📃 Database

[Database] SQL - DDL, DML, DCL이란?

by DEV_DAON 2023. 12. 15.

오늘은 SQL의 DDL, DML, DCL에 대해 알아보도록 하겠다!

 

우선 SQL이란?

관계형 데이터베이스 관리 시스템 (RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 스키마 생성과 수정, 데이터 베이스 객체 접근 조정 관리를 위해 고안되었다. SQL은 데이터베이스로부터 정보를 얻거나 갱신하기 위한 표준 대화식 프로그래밍 언어이다. 많은 수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택하고 있다.

 

SQL 문법의 종류 3가지

데이터 정의어 (DDL)

테이블의 구조를 생성하는 데 사용하며 CREATE, ALTER, DROP, TRUNCATE 문 등이 있다.

 

CREATE - 새로운 TABLE, VIEW, INDEX 등을 만든다.

DROP - 이미 존재하는 TABLE, VIEW, INDEX 등을 삭제한다.

ALTER - 이미 존재하는 DB 개체에 대한 변경을 담당한다.
TRUNCATE - TABLE에서 데이터를 제거한다. (한 번 삭제할 시 돌이킬 수 없다.)

 

데이터 조작어 (DML)

데이터의 검색, 삽입, 수정, 삭제를 담당하며 SELECT, INSERT, DELETE, UPDATE 등이 있다.

 

SELECT - 검색 (질의)

INSERT - 삽입 (등록)

UPDATE - 업데이트 (수정)
DELETE - 삭제

데이터 제어어 (DCL)

데이터의 사용 권한을 관리하는 데 사용하며 GRANT, REVOKE 등이 있다.

 

GRANT - 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 부여한다.

REVOKE - 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 박탈 또는 회수한다.

 

DB 사용자에게 GRANT 및 REVOKE로 설정할 수 있는 권한들


CONNECT - 데이터베이스 또는 스키마에 연결하는 권한

SELECT - 데이터베이스에서 데이터를 검색할 수 있는 권한

INSERT - 데이터베이스에서 데이터를 삽입할 수 있는 권한

DELETE - 데이터베이스의 데이터를 삭제할 수 있는 권한

UPDATE - 데이터베이스의 데이터를 업데이트할 수 있는 권한

USAGE - 스키마 또는 함수와 같은 데이터베이스 개체를 사용할 수 있는 권한

 

여기서? DELETE, TRUNCATE, DROP의 차이점!!

 

 DELETE - 데이터는 지워지지만 테이블 용량은 줄어들지 않는다. 원하는 데이터만 지울 수 있으며, 잘 못 삭제한 경우 삭제한 것을 되돌릴 수 있다.

TRUNCATE - 삭제 후 테이블 용량이 줄어들고 인덱스 등 모든 것이 삭제된다. 테이블이 삭제되지는 않으나 데이터만 삭제한다. 선택해서 지울 수 없으며, 삭제 후 절대 되돌릴 수 없다.

DROP - 테이블 전체를 삭제하며, 삭제 후 절대로 되돌릴 수 없다.