반응형

DDL(Data Definition Language)의 정의

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

DDL(Data Definition Language)의 특징

  • 데이터베이스 스키마를 컴퓨터가 이해할 수 있도록 기술하는 데 사용한다.
  • 데이터베이스 관리자나 데이터베이스 설계자가 사용한다.
    • 일반 응용 어플리케이션 개발자들은 권한이 부족해서 생성하지 못하는 경우가 많다.
  • 데이터베이스의 메타 데이터로 Data Dictionary에 저장한다.

DDL의 종류

명령어 기능
CREATE 새로운 데이터베이스 객체 생성
ALTER 존재하는 데이터베이스 객체 변경
DROP 존재하는 데이터베이스 객체 제거
TRUNCATE 테이블에서 데이터를 삭제
RENAME 테이블의 이름을 변경

 

데이터베이스 객체의 종류 : 테이블, 테이블 스페이스, 뷰, 인덱스, 프로시저, 함수 등

 

ALTER 명령어의 예시

기능 명령어
컬럼 추가 ALTER TABLE user ADD (deptno NUMBER(5));
컬럼명 변경 ALTER TABLE user RENAME COLUMN date TO data;
컬럼속성 변경 ALTER TABLE user MODIFY (deptno NUMBER(10));
컬럼 삭제 ALTER TABLE user DROP COLUMN deptno;
컬럼 사용 안함 처리 ALTER TABLE user SET UNUSET COLUMN deptno;
사용 안하는 컬럼 DROP ALTER TABLE user DROP UNUSET COLUMNS;

DDL 명령어의 예시

기능 명령어
테이블 삭제 DROP TABLE user;
객체 이름 변경 RENAME user TO user_new;
테이블에서 모든 데이터 제거 TRUNCATE TABLE user_new;

TRUNCATE의 특징

  • TRUNCATE는 DDL이기 때문에 Rollback이나 Commit 이 존재하지 않는다.
  • DELETE를 했을 경우 데이터를 UNDO 영역에 다시 적재하면서 데이터를 하나씩 삭제하기 때문에 시간이 오래 걸린다.
  • TRUNCATE는 영구 삭제기 때문에 속도가 매우 빠르다.

 

DML(Data Manipulation Language)의 정의

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

 

DML(Data Manipulation Language)의 특징

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

DML의 종류

명령어 기능 예시
INSERT 테이블의 전체 컬럼 또는 일부 컬럼에 값을 입력할 때 사용 INSERT INTO user (id, name) VALUES ('P01', '홍길동');
INSERT INTO user SELECT id, name from user_bak;
UPDATE 테이블에 저장된 값을 변경할 때 사용 UPDATE user SET name='홍시' where id='P01';
DELETE 테이블에 저장된 데이터(레코드)를 삭제할 때 사용 DELETE FROM user;
DELETE FROM user where id='P01';
SELECT 테이블에 저장된 값을 조회할 때 사용 SELECT * FROM user where name like '홍%';

 

DCL(Data Control Language)의 정의

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

DCL(Data Control Language)의 특징

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

DCL(Data Control Language)의 종류

명령어 기능 예시
COMMIT 입력한 자료나 수정한 자료에 대해서 또는 삭제한 자료에 대해서 트랜잭션을 종료하고 디스크에 최종 저장 UPDATE user SET name='홍시' where id='P01';
COMMIT;
ROLLBACK 트랜잭션을 취소하고 데이터의 변경 이전 상태로 복구 DELETE FROM user;
ROLLBACK;
GRANT 사용자에게 객체에 대한 특정 권한을 부여하는 명령어 GRANT select, insert, delete, update ON user TO userA;
REVOKE 사용자에게서 주어진 권한을 회수하는 명령어 REVOKE select, insert, delete, update ON user FROM userA;

 

반응형

'DB > DBMS' 카테고리의 다른 글

[DBMS] 트랜잭션(Transaction)의 정의  (0) 2022.11.01
[DBMS] DBMS의 정의  (0) 2022.10.28
[DBMS] 데이터 독립성  (0) 2022.10.27
[DBMS] DataBase란?  (0) 2020.11.29

+ Recent posts