데이터베이스

SQL DDL, DML, DCL {2023년05월24일}

늦게 시작한 개발자 2023. 5. 24. 14:36

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

테이블이나 관계의 구조를 형성하는데 사용한다.

CREATE - 새로운 데이터베이스 관계(테이블) 뷰, 인덱스, 저장 프로시저 만들기

CREATE TABLE test (
  ID  INT
  USERNAME INT
);

DROP - 이미 존재하는 데이터베이스 관계(테이블) 뷰, 인덱스, 저장 프로시저 삭제

# 테이블 전체가 사라진다.
drop table test;

ALTER - 이미 존재하는 데이터베이스 개체에 대한 변경 RENAME의 역할

 

TRUNCATE - 관계(테이블)에서 데이터를 제거한다.(삭제시 복구 불가)

 

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

테이블에 데이터 검색, 삽입, 수정, 삭제하는데 사용한다.

SELECT - 검색

INSERT - 등록

UPDATE - 수정

DELETE - 삭제

 

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

데이터의 사용권한을 관리하는데 사용한다.

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

GRANT resource, connect, dba to jslee;

Grant succeeded.

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

 

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

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

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

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

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

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

 

DELETE, TRUNCATE, DROP의 차이

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

TRUNCATE - 삭제후 용량이 줄어들고 인덱스 등도 모두 삭제된다. 테이블이 삭제 되지는 않으나 데이터만 삭제한다. 선택해서 지울 수 없다. 복구가 불가능하다.

DROP - 테이블 전체를 삭제, 공간, 객체를 삭제한다. 복구가 불가능하다.