SQL命令の種類(DML・DDL・TCL・DCL)

SQL

SQLを使うとデータベースに対して様々な命令を与えることができます。
データベース(DBMS)を操作するSQLでは、主にテーブルに保持されているデータを取得したり、テーブルのデータを挿入、更新、削除したりしますが、SQLでは、テーブルなどのデータベースのオブジェクトを作成、変更、削除したり、データベースのオブジェクトやデータベースそのものをコントロールすることもできます。

今回はSQL命令の種類と、それぞれの種類に属する代表的なSQL命令をご紹介します。

SQL命令の種類

SQLの命令には様々なものがありますが、それぞれの命令は大きく4つの種類に分類することができます。

  1. DML (Data Manipulation Language)
  2. TCL (Transaction Control Language)
  3. DDL (Data Definition Language)
  4. DCL (Data Control Language)

DML (Data Manipulation Language)

DMLはデータを操作する際に使用する命令(言語)になります。
データ操作の主な命令には、データ(テーブルのレコード)を取得する際に使用するSELEC文、データを挿入する際に使用するINSERT、データを更新する際に使用するUPDATE、データを削除する際に使用するDELETEがあります。
LOCK TABLE、SQLの実行計画に関する情報(SQLステートメントのクエリプラン)を取得するEXPLAINなどもDMLに属する命令になります。
また、挿入(INSERT)、更新(UPDATE)、削除(DELETE)を実行してテーブルを同期するMERGE、ストアドプロシージャやストアドファンクションを呼び出すCALLもDMLになります。

DDL (Data Definition Language)

DDLはデータを定義する際に使用する命令(言語)になります。
データ定義命令にはいろいろとありますが、よく使うものとしては、テーブルやビューなどのデータベースのオブジェクトを作成するCREATE、データベースのオブジェクトを削除するDROP、データベースのオブジェクトを変更するALTERなどがあります。
テーブルのデータを一括で削除するTRUNCATE、データベースのオブジェクトの名前を変更するRENAME、データベースのオブジェクトのコメントを定義、または変更するCOMMENTなどもDDLに属します。

TCL (Transaction Control Language)

TCLはトランザクションを制御する命令になります。
トランザクション制御命令には、トランザクションを開始するBEGIN TRANSACTION、トランザクション処理中の変更を取り消して終了するROLLBACK、トランザクション処理中の変更を確定させて終了するCOMMITがあります。
また、トランザクションの設定を行うSET TRANSACTION、トランザクション処理中のロールバックするポイントを作成するSAVEPOINTなどもTCLに属する命令になります。

DCL (Data Control Language)

DCLはデータを制御する命令(言語)になります。
データ制御命令には、ユーザーまたはユーザーグループに対して権限(アクセス権)の付与を行うGRANT、権限の剥奪(付与権限の取消し)を行うREVOKEなどがあります。
データベース製品によっては、TCLの項に記載したトランザクションを制御する命令をDCLに含める場合もあります。