ホームページ >データベース >mysql チュートリアル >SQL の DDL、DML、DCL、TCL の理解: 主な違いの説明

SQL の DDL、DML、DCL、TCL の理解: 主な違いの説明

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-20 03:17:10435ブラウズ

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

DDL、DML、DCL、TCL の違い

SQL コマンドは、機能に基づいてカテゴリに分類されます。ここでは、DDLDMLDCL、および 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 操作を 1 つのユニットとして実行する必要があるシナリオで役立ちます。

:

  • 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 の違いを理解することが不可欠です。各カテゴリは特定の役割を果たし、データの整合性を維持しながらデータベースが効果的に構造化、保護、操作されることを保証します。

こんにちは、アバイ・シン・カタヤットです!
私はフロントエンドとバックエンドの両方のテクノロジーの専門知識を持つフルスタック開発者です。私はさまざまなプログラミング言語やフレームワークを使用して、効率的でスケーラブルでユーザーフレンドリーなアプリケーションを構築しています。
ビジネス用メールアドレス kaashshorts28@gmail.com までお気軽にご連絡ください。

以上がSQL の DDL、DML、DCL、TCL の理解: 主な違いの説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。