Interview/DB
Database에서 DDL DML DCL
김 정출
2024. 10. 14. 15:51
Database에서 DDL DML DCL
데이터베이스 관리 시스템(DBMS)에서 사용하는 SQL은 크게 세 가지 범주로 나눌 수 있습니다: DDL, DML, DCL. 이들은 각각 데이터 정의(DDL), 데이터 조작(DML), 데이터 제어(DCL)와 관련된 명령어들을 의미합니다. MySQL을 예시로 각 범주에 대해 설명하고 예시를 들어보겠습니다.
1. 정의 기능(DDL: Data Definition Language)
Definition
정의- DDL은 데이터베이스의 구조를 정의하는 데 사용됩니다.
- 테이블, 인덱스, 뷰, 스키마 등 데이터베이스 객체의 생성, 수정, 삭제 등을 할 때 사용합니다.
- 주요 명령어:
CREATE
: 새로운 데이터베이스 객체(테이블, 인덱스 등)를 생성ALTER
: 기존 데이터베이스 객체를 수정DROP
: 데이터베이스 객체를 삭제TRUNCATE
: 테이블의 데이터를 모두 삭제(구조는 유지)
- MySQL 예시:
-- 새로운 테이블 생성
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
position VARCHAR(50),
salary DECIMAL(10, 2)
);
-- 테이블에 컬럼 추가
ALTER TABLE employees ADD COLUMN hire_date DATE;
-- 테이블 삭제
DROP TABLE employees;
2. 조작 기능(DML: Data Manipulation Language)
Manipulation
조작- DML은 테이블에 저장된 데이터를 조작하는 데 사용됩니다.
- 데이터를 조회, 삽입, 수정, 삭제하는 작업을 수행합니다.
- 주요 명령어:
SELECT
: 데이터를 조회INSERT
: 데이터를 삽입UPDATE
: 기존 데이터를 수정DELETE
: 데이터를 삭제
- MySQL 예시:
-- 데이터 삽입
INSERT INTO employees (name, position, salary)
VALUES ('John Doe', 'Developer', 5500.00);
-- 데이터 조회
SELECT * FROM employees WHERE position = 'Developer';
-- 데이터 수정
UPDATE employees SET salary = 6000.00 WHERE name = 'John Doe';
-- 데이터 삭제
DELETE FROM employees WHERE name = 'John Doe';
3. 제어 기능(DCL: Data Control Language)
Control
제어- 데이터베이스에 대한 권한을 제어하는 데 사용됩니다. 사용자에게 권한을 부여하거나 회수하는 작업을 수행합니다.
- 주요 명령어:
GRANT
: 사용 권한을 부여REVOKE
: 사용 권한을 회수
- MySQL 예시:
-- 사용자에게 테이블에 대한 모든 권한 부여
GRANT ALL PRIVILEGES ON employees TO 'user'@'localhost';
-- 사용자에게서 SELECT 권한 회수
REVOKE SELECT ON employees FROM 'user'@'localhost';
요약
- DDL: 데이터베이스 객체의 구조를 정의(생성, 수정, 삭제).
- DML: 데이터 조작(조회, 삽입, 수정, 삭제).
- DCL: 데이터베이스 접근 권한 제어.
- D C L: 정의 → 조작(데이터) → 제어(권한 접근)