社畜ゲートウェイ

京成・京急を中心に取り上げる阪急ファンのブログです。日本一遅い速報を届けます。

MENU

【スポンサーリンク】

【DB基礎】DDL(データ定義言語)とは?

【スポンサーリンク】

データベースを扱うにはSQLが必要です。SQLはデータベースに対して命令を行い、データベースを操作・定義・制御を行います。一般的には大きく3つに分類されます。

今回はデータ定義言語(DDL)について取り上げます。

DDL(データ定義言語)とは?

DDL(データ定義言語)とは、Data Definition Languageの略で、データベースの定義に対して命令する言語です。DML(データ操作言語)はデータ(レコード)に対しての命令でしたが、DDLはテーブルやビューなどに、オブジェクトと言われるものに対して命令します。

DMLは主に、以下の機能を指します。

  • CREATE:作成(テーブル、ビュー、インデックス、ストアドプロシージャ)
  • DROP:削除(テーブル、ビュー、インデックス、ストアドプロシージャ)
  • ALTER:変更(行追加・行削除など定義の変更)
  • TRUNCATE:テーブルデータの削除(ロールバック不可な削除)

上記いずれもデータベースのオブジェクトの定義に関するSQLです。テーブルやビューの定義を見ると、CREATEは見ることが出来ますので、上記の中ではCREATEが一番ポピュラーです。TRUNCATEも見かけることがあると思います。テーブルの中身を全て消してもいい(切り捨てる)場合ですね。

例えば、CREATE TABLEというのはテーブルを作成するSQLですが、CREATE TABLE文のSQLを見てみると、テーブル名やカラム名、カラム型、カラム長など、作成するテーブルの様々な定義を行っています。DROP TABLEはテーブルを削除するSQLで、これはテーブルを定義ごとマルっと消し去ります。

DMLとDDLの「削除」の違い

DMLも削除(DELETE)というものが出てきましたので、DDLの削除との差異をお話します。DDLのDROPやTRUNCATEと、DMLのDELETEの差異は、端的に言うと以下です。

  • DDLの削除:テーブルに対しての削除
  • DMLの削除:データに対しての削除

DDLの削除はテーブル全体に対して削除を実行します。DROPであれば、テーブルを丸ごと消し去ります。TRUNCATEはテーブル自体は残りますが、テーブルのデータ全てを削除します(条件による指定不可)。

対して、DMLの削除(DELETE)は、条件を指定すれば、条件に合うレコードのみを削除します。もちろん、条件を指定しなければ、テーブルのデータは全て削除されます。

尚、DDLの削除(DROP、TRUNCATE)は、実行すると後戻りが出来ません。DMLの削除(DELETE)は実行してもコミットするまでデータが完全には失われないという猶予があります。

「DDL」という単語を覚える必要は?

DMLの時にも述べましたが、DDLという単語を覚える必要があるかと言われたら、別に覚える必要はありません。覚えておいて損は無いです。「DDLは、テーブルやビューに対して操作するんだな」、という認識で良いでしょう。資格試験の時に正しく回答出来ればOKなくらいです。

関連記事

www.stellacreate.com

www.stellacreate.com