[DB] DBMS 질의어(쿼리)

최동혁·2023년 1월 25일
0

데이터베이스

목록 보기
14/18

DDL(Data Definition Language)

  • 데이터베이스의 객체를 생성하고, 삭제, 변경할 수 있는 SQL 명령어

특징

  • 데이터베이스 스키마를 컴퓨터가 이해할 수 있도록 기술하는데 사용
  • 데이터베이스 관리자나 데이터베이스 설계자가 사용
  • 데이터베이스의 메타 데이터(Data about Data)로 Data Dictionary에 저장

종류

CREATE

  • 새로운 데이터베이스 객체 생성

ALTER

  • 존재하는 데이터베이스 객체 변경

DROP

  • 존재하는 데이터베이스 객체 제거

TRUNCATE

  • 테이블에서 데이터를 삭제

RENAME

  • 테이블의 이름을 변경

질문 내용

  • TRUNCATE는 DDL이기 때문에 롤백이나 커밋이 존재하지 않는다.
  • DELETE 쿼리를 실행시켜서 데이터를 삭제했을때는 롤백을 통해 모든 데이터를 복구할 수 있지만, TRUNCATE 명령어를 통해 삭제했을 경우는 복구할 방법이 없다!(백업이 없는 경우에)
  • TRUNCATE는 속도가 매우 빠름.
  • DELETE는 UNDO 영역에 데이터를 적재하면서 하나하나 삭제하기 때문에 시간이 매우 오래 걸리는데 비해, TRUNCATE는 롤백이 존재하지 않게 데이터를 영구히 삭제하기 때문에 0.5초 만에 데이터를 모두 삭제함.
  • DDL은 보통 관리자가 쓰는 언어로서 테이블 자체를 건든다.

DML(Data Manipulation Language)

  • 데이터베이스 내부 스키마에 데이터를 입력, 수정, 삭제하거나 조회하기 위한 언어 또는 명령어

특징

  • 데이터베이스의 데이터 조작을 위한 필수 언어
  • 질의 방법에 따라 성능의 차이가 발생
  • 사용자가 직접 필요로 하는 답을 만드는 것이 아니라 데이터베이스의 처리 엔진(옵티마이저)이 답을 찾아 해결

종류

INSERT

  • 테이블의 전체 컬럼 또는 일부 컬럼에 값을 입력할 때 사용

UPDATE

  • 테이블에 저장된 값을 변경할 때 사용

DELETE

  • 테이블에 저장된 데이터(레코드)를 삭제할 때 사용

SELECT

  • 테이블에 저장된 값을 조회할 때 사용

DCL(Data Control Language)

  • 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어

특징

  • 데이터의 무결성 및 정확성을 확보하기 위한 기능
  • 불법적인 사용자로부터 데이터를 보호하기 위한 기능
  • 시스템 장애로부터 회복하거나 동시 접근을 위한 기능

종류

COMMIT

  • 입력한 자료나 수정한 자료에 대해서 또는 삭제한 자료에 대해서 트랜잭션을 종료하고, 디스크에 최종 저장

ROLLBACK

  • 트랜잭션을 취소하고, 데이터의 변경 이전 상태로 복구

GRANT

  • 사용자에게 객체에 대한 특정 권한을 부여하는 명령어

REVOKE

  • 사용자에게서 주어진 권한을 회수하는 명령어
profile
항상 성장하는 개발자 최동혁입니다.

0개의 댓글