반응형
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 |