[Oracle] DDL、DML、DCLの違いと理解

DML、DDL、DCLの違い

一般的な説明:

DML(データ操作言語):
名前と同じように、SELECT、UPDATE、INSERT、DELETEです。これらの4つのコマンドは、データベース言語
DDL(データ定義言語)でデータを操作するために使用されます。):
DDLはDML以上であり、主なコマンドはCREATE、ALTER、DROPなどです。DDLは主に、テーブル(TABLE)の構造、データタイプ、リンク、テーブル間の制約などを定義または変更するために使用されます。初期化作業。ほとんどの場合、テーブルの作成時に
DCL(データ制御言語)を使用します。これ
はデータベース制御関数です。これは、データベースのユーザーまたはロールのアクセス許可を設定または変更するために使用されるステートメントであり、(許可、拒否、取り消しなど)ステートメントが含まれます。デフォルトの状態では、sysadmin、dbcreator、db_owner、db_securityadmin、およびその他の担当者のみがDCLの

詳細な説明を実行する権利を持っています。1。DDL

はデータ定義言語ステートメントです。いくつかの例:データ定義言語。 SQLデータベース言語
1.CREATE-データベース内にオブジェクトを作成して作成します
2.ALTER-データベース変更の構造を変更します3.DROP-データベースから
オブジェクトを削除して削除します
4.TRUNCATE-レコードに割り当てられたすべてのスペースを含むすべてのレコードをテーブルから削除します
。TRUNCATETABLE[テーブル名]。
  以下は、MSSQLServer2000でのTruncateステートメントの使用法と原則の説明です。次の
  理由により、テーブルテーブル名のトランケートは高速かつ効率的です
  。TRUNCATETABLEは、WHERE句のないDELETEステートメントと機能的に同じです。両方ともテーブルのすべての行を削除します。ただし、TRUNCATE TABLEはDELETEよりも高速であり、使用するシステムおよびトランザクションログリソースが少なくなります。
  DELETEステートメントは、一度に1行を削除し、削除された行ごとに1つの項目をトランザクションログに記録します。TRUNCATE TABLEは、テーブルデータの格納に使用されるデータページを解放することによってデータを削除し、ページの解放のみをトランザクションログに記録します。
  TRUNCATE TABLEはテーブル内のすべての行を削除しますが、テーブル構造とその列、制約、インデックスなどは変更されません。新しい行の識別に使用されるカウント値は、列のシードにリセットされます。マークカウント値を保持したい場合は、代わりにDELETEを使用してください。テーブル定義とそのデータを削除する場合は、DROPTABLEステートメントを使用します。
  FOREIGN KEY制約によって参照されるテーブルの場合、TRUNCATE TABLEは使用できませんが、WHERE句のないDELETEステートメントを使用する必要があります。TRUNCATE TABLEはログに記録されないため、トリガーをアクティブ化できません。
  TRUNCATE TABLEは、イン​​デックス付きビューに参加するテーブルには使用できません。
5.COMMENT-データディクショナリにコメントを追加します

6.GRANT-データベース認証へのユーザーのアクセス権限を付与します。7。REVOKE-GRANTコマンドで指定されたアクセス権限を撤回します

。2。DMLはデータ操作言語ステートメントです。いくつかの例:データ操作言語、SQLでのデータ処理、およびその他の操作データ操作言語1.SELECT-

データベースクエリからデータを取得します
2.INSERT-テーブルにデータを挿入しますadd3.UPDATE-
テーブル更新内の既存のデータを更新します
4.DELETE-テーブルからすべてのレコードを削除します。レコードは削除されたまま
です。5。CALL-PL/ SQLまたはJavaサブプログラムを呼び出します
。6。EXPLAINPLAN-データへのアクセスパスを説明
します。OracleRDBMSによって実行されるすべてのSQLステートメントは、Oracleオプティマイザによって評価される必要があります。したがって、オプティマイザーがパスを選択(検索)する方法とインデックスが使用される方法を理解することは、SQLステートメントを最適化するのに非常に役立ちます。Explainを使用すると、特定のSQLステートメントのクエリデータがどのように取得されるか、つまり検索パス(通常はアクセスパスと呼ばれます)をすばやく簡単に見つけることができます。そのため、最大の最適化効果を達成するために最適なクエリ方法を選択できます。
7. LOCK TABLE-同時実行ロックを制御します。同時実行を制御するために使用されます

。3、DCLはデータ制御言語ステートメントです。いくつかの例:データ制御言語。データベースにアクセスするための特定の特権を付与または再利用し、データベース操作トランザクションの時間を制御するために使用されます。発生し、エフェクト、データベースを監視する、など

1. COMMIT-保存行われる作業
後でロールバックできるトランザクション2. SAVEPOINT-識別ポイント
最後のCOMMIT以降3.元にデータベースをROLLBACK復元
4. SETトランザクションを-使用するロールバックセグメントなどのトランザクションオプションを変更します。現在のトランザクションの特性を設定します。後続のトランザクションには影響しません。

DDL、DML、およびDCL(Zhang Qingshan)を理解すると、

最初に次のことがわかります




 

1、DDL

      1-1。DDLの概要
               DDL(データ定義言語)は、オブジェクトとオブジェクト属性を操作するために使用されます。このようなオブジェクトには、データベース自体だけでなく、これらのオブジェクトと属性のテーブルやビューなどのデータベースオブジェクトも含まれます。作成、削除、変更の特定の症状の管理と定義。特別な注意:DDL操作における「オブジェクト」の概念。「オブジェクト」にはオブジェクトとその属性が含まれ、最小のオブジェクトもレコードよりも大きいレベルです。例としてテーブルを取り上げます。Createはデータテーブルを作成し、Alterはテーブルのフィールドを変更でき、Dropはこのテーブルを削除できます。ここから、DDLステーションの高さを確認できます。彼は特定のデータを操作しません。

      1-2、DDLのメインステートメント(操作)
               Createステートメント:データベースとデータベースのいくつかのオブジェクトを作成できます。
               ドロップステートメント:データテーブル、インデックス、トリガー、条件付き制約、およびデータテーブルのアクセス許可を削除できます。
               ALTERステートメント:データテーブルの定義と属性を変更します。
      1-3。DDLの操作オブジェクト(テーブル)
               1-3-1。
                           テーブルの概念テーブルの作成はデータの格納に使用されます。格納するデータが利用できないため、管理を容易にするためにいくつかのデータタイプを定義する必要があります。
               1-3-2、テーブル属性   
                           主キー属性:主キーは主キー制約ですが、名前が異なります。主キーの名前は仮想にバイアスされ(つまり、モノを説明します)、主キー制約の名前はにバイアスされます。実際(つまり、操作の実装を説明する)であり、説明はすべて同じです。主キー制約はテーブル内の属性です。テーブル内には最大で1つの主キーが存在できます。主キー1つ以上のフィールドで定義できます。主キーを使用すると、1つ以上のフィールドの値が一意であり、空であってはなりません。このようにして、レコードはフィールドまたはフィールドのグループの値で一意に表すことができます。
                           一意性属性:テーブルには1つの主キー属性しか存在できません。テーブルのユーザーには、一意性制約が提案されます。一意性制約は1つ以上のフィールドで定義できます。一意性制約は、フィールドの値を作成します。ただし、空にすることができる一意のフィールドのグループを繰り返すことはできません。
                           外部キー属性:外部キーとも呼ばれ、外部キー制約とも呼ばれ、主キーと主キー制約の関係は同じです。テーブルAの主キーがテーブルBのフィールドである場合、外部キー制約は2つのテーブルに対するものです。 、このフィールドはテーブルBの外部キーと呼ばれ、テーブルAはマスターテーブルと呼ばれ、テーブルBはスレーブテーブルと呼ばれますが、コンピューターはユーザーがこの関係にあることを認識している必要があることに注意してください。

               検証、ヌルおよびデフォルト属性:検証属性は検証制約とも呼ばれ、ヌル属性はヌル制約とも呼ばれ、デフォルト属性はデフォルト制約とも呼ばれます。これらの名前は1つのことを表し、状況、この問題、またはこれを表します。もちろん、意図的に人工的に行うことはできますが(入力データに注意を払うだけです)、本来の目的は自動化することです。つまり、コンピューターにこれを行わせることです。
            (主キーと一意の制約が作成されたときにインデックスが自動的に作成される理由を知っていますか?それは一意のインデックスです。インデックスは主にこれらのフィールドで使用され、インデックスの役割がわかります。主キーのように制約、一意性制約、空でない制約、外部キー制約、検証制約、およびデフォルト制約はすべて、テーブルに特定の特性を持たせる操作であるため、ここではすべてテーブル属性だと思います。)

2。DML

      2-1。DMLの概要
               DML(Data Manipulation Language)は、データベースオブジェクトに含まれるデータを操作するために使用されます。つまり、操作の単位はレコードです。
      2-2。DMLのメインステートメント(操作)
               Insertステートメント:データテーブルにレコードを挿入します。
               削除ステートメント:データテーブル内の1つ以上のレコードを削除するか、データテーブル内のすべてのレコードを削除しますが、その操作オブジェクトは引き続きレコードです。
               更新ステートメント:既存のテーブルのレコードの内容を変更するために使用されます。                2-3。DML
      レコードの操作オブジェクト
2-3-1。レコード
                           に対して挿入、削除、更新操作を実行するときは、注意を払う必要があり、DDLのいくつかの操作について明確にする必要があることに注意してください。

3. DCL

       3-1。DCLの概要
                DCL(データ制御言語)の操作はデータベースオブジェクトの権限であり、これらの操作の決定によりデータがより安全になります。
       3-2。DCL
                Grantステートメントのメインステートメント(操作):オブジェクトの作成者が特定のユーザー、特定のグループ、またはすべてのユーザー(PUBLIC)に特定のアクセス許可を付与できるようにします。
                取り消しステートメント:特定のユーザー、特定のグループ、またはすべてのユーザーのアクセス権を取り消すことができます。3-3。DCL
       の操作オブジェクト(ユーザー)。
                このとき、ユーザーはデータベースユーザーを参照します。 

参考記事

https://www.cnblogs.com/qxqbk/p/7240195.html

おすすめ

転載: blog.csdn.net/xiaoxiao_su123/article/details/114268045