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: 정의 → 조작(데이터) → 제어(권한 접근)