> 데이터 베이스 > MySQL 튜토리얼 > SQL의 DDL, DML, DCL 및 TCL 이해: 주요 차이점 설명

SQL의 DDL, DML, DCL 및 TCL 이해: 주요 차이점 설명

Linda Hamilton
풀어 주다: 2024-12-20 03:17:10
원래의
403명이 탐색했습니다.

Understanding DDL, DML, DCL, and TCL in SQL: Key Differences Explained

DDL, DML, DCL, TCL의 차이점

SQL 명령은 기능에 따라 카테고리로 구분됩니다. 다음은 DDL, DML, DCL, TCL의 차이점에 대한 설명과 예입니다.


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

목적:

DDL 명령은 테이블, 스키마, 인덱스, 뷰와 같은 데이터베이스 개체의 구조를 정의하고 관리하는 데 사용됩니다.

주요 기능:

  • 데이터베이스 스키마 정의 및 수정에 중점을 둡니다.
  • DDL 명령을 사용한 변경 사항은 영구적이며 자동으로 커밋됩니다.

:

  • CREATE: 테이블 또는 데이터베이스 개체를 생성합니다.
  CREATE TABLE students (
      id INT PRIMARY KEY,
      name VARCHAR(100),
      age INT
  );
로그인 후 복사
로그인 후 복사
  • ALTER: 기존 테이블을 수정합니다.
  ALTER TABLE students ADD COLUMN grade CHAR(1);
로그인 후 복사
로그인 후 복사
  • DROP: 데이터베이스 개체를 삭제합니다.
  DROP TABLE students;
로그인 후 복사
로그인 후 복사
  • TRUNCATE: 테이블의 모든 레코드를 삭제합니다.
  TRUNCATE TABLE students;
로그인 후 복사
로그인 후 복사

핵심 포인트:

  • DDL 명령은 데이터가 아닌 데이터베이스의 구조를 정의합니다.
  • 변경 사항을 자동으로 커밋합니다(롤백 불가).

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

목적:

DML 명령은 데이터 검색, 삽입, 업데이트, 삭제 등 데이터베이스 테이블에 저장된 데이터를 조작하는 데 사용됩니다.

주요 기능:

  • 데이터베이스의 구조보다는 데이터 운영에 중점을 둡니다.
  • 변경사항은 자동으로 커밋되지 않습니다. 롤백할 수 있습니다.

:

  • INSERT: 새 레코드를 추가합니다.
  INSERT INTO students (id, name, age, grade)
  VALUES (1, 'Alice', 20, 'A');
로그인 후 복사
로그인 후 복사
  • UPDATE: 기존 기록을 수정합니다.
  UPDATE students
  SET age = 21
  WHERE id = 1;
로그인 후 복사
로그인 후 복사
  • DELETE: 기록을 삭제합니다.
  DELETE FROM students
  WHERE id = 1;
로그인 후 복사

핵심 포인트:

  • DML 명령은 데이터베이스의 데이터 작업에 사용됩니다.
  • 변경 사항에는 COMMIT 명령을 사용하여 명시적으로 커밋해야 합니다.

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

목적:

DCL 명령은 데이터베이스에 대한 액세스를 제어하여 승인된 사용자만 특정 작업을 수행할 수 있도록 하는 데 사용됩니다.

주요 기능:

  • 보안 및 사용자 권한에 중점을 둡니다.
  • 데이터베이스 개체에 대한 액세스 권한을 부여하거나 취소합니다.

:

  • GRANT: 권한을 제공합니다.
  CREATE TABLE students (
      id INT PRIMARY KEY,
      name VARCHAR(100),
      age INT
  );
로그인 후 복사
로그인 후 복사
  • REVOKE: 권한을 제거합니다.
  ALTER TABLE students ADD COLUMN grade CHAR(1);
로그인 후 복사
로그인 후 복사

핵심 포인트:

  • DCL 명령은 데이터베이스 보안을 유지하는 데 매우 중요합니다.
  • 데이터베이스 관리자가 사용자 액세스를 관리하는 데 사용됩니다.

4. TCL(트랜잭션 제어 언어)

목적:

TCL 명령은 트랜잭션을 관리하여 데이터 변경 사항이 일관되게 처리되고 필요에 따라 커밋되거나 롤백될 수 있도록 보장합니다.

주요 기능:

  • 거래의 무결성을 유지하는 데 중점을 둡니다.
  • 여러 DML 작업을 단일 단위로 실행해야 하는 시나리오에 유용합니다.

:

  • COMMIT: 변경 사항을 영구적으로 저장합니다.
  DROP TABLE students;
로그인 후 복사
로그인 후 복사
  • ROLLBACK: 현재 트랜잭션의 변경 사항을 취소합니다.
  TRUNCATE TABLE students;
로그인 후 복사
로그인 후 복사
  • SAVEPOINT: 부분 롤백을 위해 거래 내에서 지점을 설정합니다.
  INSERT INTO students (id, name, age, grade)
  VALUES (1, 'Alice', 20, 'A');
로그인 후 복사
로그인 후 복사
  • SET TRANSACTION: 트랜잭션의 속성을 정의합니다.
  UPDATE students
  SET age = 21
  WHERE id = 1;
로그인 후 복사
로그인 후 복사

핵심 포인트:

  • TCL 명령은 복잡한 작업 중에 데이터 일관성을 관리하는 데 사용됩니다.
  • 변경 사항은 COMMIT로 마무리되거나 ROLLBACK으로 되돌려집니다.

비교표

Category Purpose Examples Changes Committed Focus
DDL Defines database structure CREATE, ALTER, DROP Auto-committed Database schema management
DML Manipulates data in the database INSERT, UPDATE, DELETE Not auto-committed Data within tables
DCL Controls access to the database GRANT, REVOKE Auto-committed User permissions and security
TCL Manages database transactions COMMIT, ROLLBACK, SAVEPOINT Requires explicit action Transaction consistency
카테고리 목적 예 변경 사항 커밋됨 초점 DDL 데이터베이스 구조 정의 생성, 변경, 삭제 자동 커밋 데이터베이스 스키마 관리 DML 데이터베이스의 데이터를 조작합니다 삽입, 업데이트, 삭제 자동 커밋되지 않음 테이블 내의 데이터 DCL 데이터베이스에 대한 액세스 제어 부여, 취소 자동 커밋 사용자 권한 및 보안 TCL 데이터베이스 트랜잭션 관리 커밋, 롤백, 세이브포인트 명시적인 조치가 필요함 거래 일관성

결론

효율적인 데이터베이스 관리를 위해서는 DDL, DML, DCL, TCL의 차이점을 이해하는 것이 필수적입니다. 각 카테고리는 특정 역할을 수행하여 데이터 무결성을 유지하면서 데이터베이스를 효과적으로 구성, 보안 및 조작할 수 있도록 합니다.

안녕하세요. 저는 Abhay Singh Kathayat입니다!
저는 프론트엔드와 백엔드 기술 모두에 대한 전문 지식을 갖춘 풀스택 개발자입니다. 저는 효율적이고 확장 가능하며 사용자 친화적인 애플리케이션을 구축하기 위해 다양한 프로그래밍 언어 및 프레임워크를 사용하여 작업합니다.
제 비즈니스 이메일인 kaashshorts28@gmail.com으로 언제든지 연락주세요.

위 내용은 SQL의 DDL, DML, DCL 및 TCL 이해: 주요 차이점 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿