개발공부

DCL, DML, DCL?

Iam_noob 2024. 9. 4. 13:36
728x90
반응형

데이터베이스 관리 시스템(DBMS)에서 사용되는 SQL 언어는 크게 세 가지 주요 범주로 나눌 수 있습니다: 데이터 정의 언어(DDL), 데이터 조작 언어(DML), 그리고 데이터 제어 언어(DCL)입니다. 각각의 범주는 데이터베이스와의 상호작용에 사용되는 SQL 명령어를 정의하며, 이 글에서는 DDL, DML, DCL의 개념과 각 범주에 포함된 명령어들을 자세히 설명하겠습니다.


목차

  1. 데이터 정의 언어(DCL)

    • DDL의 개념
    • 주요 DDL 명령어
      • CREATE
      • ALTER
      • DROP
      • TRUNCATE
    • DDL 사용 예제
  2. 데이터 조작 언어(DML)

    • DML의 개념
    • 주요 DML 명령어
      • SELECT
      • INSERT
      • UPDATE
      • DELETE
    • DML 사용 예제
  3. 데이터 제어 언어(DCL)

    • DCL의 개념
    • 주요 DCL 명령어
      • GRANT
      • REVOKE
    • DCL 사용 예제
  4. 결론


1. 데이터 정의 언어(DDL)

DDL의 개념

데이터 정의 언어(Data Definition Language, DDL)는 데이터베이스 구조를 정의하는 데 사용되는 SQL의 하위 집합입니다. DDL 명령어는 데이터베이스, 테이블, 인덱스와 같은 데이터베이스 개체를 생성, 수정 또는 삭제하는 데 사용됩니다. DDL 명령어를 실행하면 데이터베이스에 대한 구조적 변경이 발생하며, 이러한 변경은 일반적으로 자동으로 커밋됩니다.

주요 DDL 명령어

  1. CREATE: 새로운 데이터베이스 개체(예: 데이터베이스, 테이블, 인덱스 등)를 생성합니다.

    CREATE TABLE students (
        id INT PRIMARY KEY,
        name VARCHAR(100),
        age INT
    );
  2. ALTER: 기존의 데이터베이스 개체를 수정합니다. 예를 들어, 테이블에 새로운 열을 추가하거나 기존 열의 속성을 변경할 수 있습니다.

    ALTER TABLE students ADD COLUMN grade CHAR(1);
  3. DROP: 데이터베이스 개체를 삭제합니다. 삭제된 개체는 복구할 수 없습니다.

    DROP TABLE students;
  4. TRUNCATE: 테이블의 모든 데이터를 삭제하지만 테이블의 구조는 유지합니다.

    TRUNCATE TABLE students;

DDL 사용 예제

아래 예제는 CREATEALTER 명령어를 사용하여 새로운 테이블을 생성하고, 그 후에 테이블에 새로운 열을 추가하는 방법을 보여줍니다.

CREATE TABLE employees (
    emp_id INT PRIMARY KEY,
    emp_name VARCHAR(100),
    emp_salary DECIMAL(10, 2)
);

ALTER TABLE employees ADD COLUMN emp_department VARCHAR(50);

2. 데이터 조작 언어(DML)

DML의 개념

데이터 조작 언어(Data Manipulation Language, DML)는 데이터베이스에서 데이터를 조회하거나 삽입, 수정, 삭제하는 데 사용되는 SQL 명령어를 포함합니다. DML 명령어는 주로 데이터베이스 내의 데이터를 처리하는 데 사용되며, 데이터베이스의 구조를 변경하지는 않습니다.

주요 DML 명령어

  1. SELECT: 데이터베이스에서 데이터를 조회합니다.

    SELECT * FROM employees;
  2. INSERT: 새로운 데이터를 테이블에 삽입합니다.

    INSERT INTO employees (emp_id, emp_name, emp_salary) VALUES (1, 'John Doe', 50000);
  3. UPDATE: 기존 데이터를 수정합니다.

    UPDATE employees SET emp_salary = 55000 WHERE emp_id = 1;
  4. DELETE: 테이블에서 데이터를 삭제합니다.

    DELETE FROM employees WHERE emp_id = 1;

DML 사용 예제

아래 예제는 INSERTSELECT 명령어를 사용하여 데이터를 삽입하고 조회하는 방법을 보여줍니다.

INSERT INTO employees (emp_id, emp_name, emp_salary, emp_department) 
VALUES (2, 'Jane Smith', 60000, 'Marketing');

SELECT * FROM employees WHERE emp_department = 'Marketing';

3. 데이터 제어 언어(DCL)

DCL의 개념

데이터 제어 언어(Data Control Language, DCL)는 데이터베이스에 대한 액세스 권한을 관리하는 SQL 명령어를 포함합니다. DCL 명령어는 사용자의 데이터베이스 개체에 대한 권한을 부여하거나 취소하는 데 사용됩니다.

주요 DCL 명령어

  1. GRANT: 사용자가 특정 데이터베이스 개체에 대해 특정 작업을 수행할 수 있는 권한을 부여합니다.

    GRANT SELECT, INSERT ON employees TO user_name;
  2. REVOKE: 사용자가 특정 데이터베이스 개체에 대해 부여받은 권한을 취소합니다.

    REVOKE INSERT ON employees FROM user_name;

DCL 사용 예제

아래 예제는 GRANTREVOKE 명령어를 사용하여 사용자의 권한을 관리하는 방법을 보여줍니다.

GRANT SELECT, UPDATE ON employees TO 'user1';

REVOKE UPDATE ON employees FROM 'user1';

4. 결론

DDL, DML, DCL은 각각 데이터베이스의 구조를 정의하고, 데이터를 조작하며, 데이터에 대한 액세스 권한을 제어하는 중요한 SQL 명령어 집합입니다. 데이터베이스를 효과적으로 관리하고 운영하기 위해서는 각 언어의 개념과 사용법을 잘 이해하는 것이 중요합니다. 이 글에서 설명한 내용을 통해 DDL, DML, DCL에 대한 기본적인 이해를 돕고, 실제로 데이터베이스를 관리할 때 이러한 명령어들을 활용할 수 있도록 도움이 되었길 바랍니다.

728x90
반응형

'개발공부' 카테고리의 다른 글

http와 https의 차이점  (1) 2024.09.25
JWT, Refresh Token, Access Token 이란?  (0) 2024.09.10
정렬 알고리즘이란?  (2) 2023.11.30
프로세스와 쓰레드  (2) 2023.11.25
HTTP 요청 메서드  (0) 2023.08.24