SQL

SQL 명령어: DDL, DML, DCL 정리

초코너무조코 2025. 1. 21. 12:18
728x90

 

목차


    1. DDL (Data Definition Language)

    정의
    DDL은 데이터베이스의 구조(스키마)를 정의하거나 수정하는 데 사용됩니다.
    주로 테이블, 뷰, 인덱스, 데이터베이스 생성 및 변경 작업에 사용됩니다.

    특징

    • 데이터베이스의 구조와 관련된 작업을 수행합니다.
    • 명령어 실행 시 자동으로 커밋(commit)이 이루어집니다.
    • 복구를 위해 롤백(rollback)할 수 없습니다.

    주요 명령어

    1. CREATE: 데이터베이스, 테이블, 뷰 등을 생성합니다.
    2. ALTER: 테이블 구조를 수정합니다.
    3. DROP: 데이터베이스, 테이블 등을 삭제합니다.
    4. TRUNCATE: 테이블의 데이터를 초기화합니다.

    예시

    -- CREATE: 테이블 생성
    CREATE TABLE Students (
        StudentID INT PRIMARY KEY,
        Name VARCHAR(50),
        Age INT
    );
    
    -- ALTER: 테이블에 컬럼 추가
    ALTER TABLE Students ADD Email VARCHAR(100);
    
    -- DROP: 테이블 삭제
    DROP TABLE Students;
    
    -- TRUNCATE: 테이블 데이터 초기화 (구조는 유지)
    TRUNCATE TABLE Students;
    

    2. DML (Data Manipulation Language)

    정의
    DML은 데이터베이스 내의 데이터를 삽입, 조회, 수정, 삭제하는 데 사용됩니다.
    사용자가 테이블에 저장된 데이터를 직접 다루는 명령어입니다.

    특징

    • 트랜잭션 관리가 가능합니다.
      (명령어 실행 후 커밋(commit) 또는 롤백(rollback)을 통해 변경 사항을 적용하거나 취소할 수 있음)

    주요 명령어

    1. SELECT: 테이블에서 데이터를 조회합니다.
    2. INSERT: 데이터를 삽입합니다.
    3. UPDATE: 데이터를 수정합니다.
    4. DELETE: 데이터를 삭제합니다.

    예시

    -- INSERT: 데이터 삽입
    INSERT INTO Students (StudentID, Name, Age, Email)
    VALUES (1, 'Alice', 20, 'alice@example.com');
    
    -- SELECT: 데이터 조회
    SELECT * FROM Students;
    
    -- UPDATE: 데이터 수정
    UPDATE Students
    SET Age = 21
    WHERE StudentID = 1;
    
    -- DELETE: 데이터 삭제
    DELETE FROM Students
    WHERE StudentID = 1;
    

    3. DCL (Data Control Language)

    정의
    DCL은 데이터베이스의 권한과 보안을 관리하기 위해 사용됩니다.
    주로 사용 권한을 부여하거나 회수하는 데 사용됩니다.

    특징

    • 데이터베이스 사용자와 관련된 작업을 처리합니다.
    • 명령어 실행 시 **커밋(commit)**이 자동으로 발생합니다.

    주요 명령어

    1. GRANT: 사용 권한을 부여합니다.
    2. REVOKE: 사용 권한을 회수합니다.

    예시

    -- GRANT: 사용 권한 부여
    GRANT SELECT, INSERT ON Students TO User1;
    
    -- REVOKE: 사용 권한 회수
    REVOKE INSERT ON Students FROM User1;
    

    DDL, DML, DCL 비교

    구분 DDL DML DCL

    풀네임 Data Definition Language Data Manipulation Language Data Control Language
    역할 데이터베이스 구조 정의 및 변경 데이터 관리(조회, 삽입, 수정, 삭제) 권한 및 보안 관리
    명령어 CREATE, ALTER, DROP, TRUNCATE SELECT, INSERT, UPDATE, DELETE GRANT, REVOKE
    트랜잭션 지원하지 않음 (자동 커밋) 지원 (커밋/롤백 가능) 지원하지 않음 (자동 커밋)

    추가로 알아두면 좋은 SQL 분류

    1. TCL (Transaction Control Language)
      • 트랜잭션을 제어하는 명령어입니다.
      • 주요 명령어: COMMIT, ROLLBACK, SAVEPOINT
      BEGIN TRANSACTION;
      UPDATE Students SET Age = 22 WHERE StudentID = 1;
      ROLLBACK; -- 변경 사항 취소
      COMMIT;   -- 변경 사항 확정
      
    2. DQL (Data Query Language)
      • 데이터를 조회하는 데 사용되는 명령어입니다.
      • 사실상 DML의 일부로 간주되지만, SELECT 명령어를 DQL로 따로 분리하기도 합니다.

     

    728x90