🥝

RDBMSに与える3種類の命令

2024/12/05に公開

DDL、DML、DCLって?

たまに面談で話題に出てくるDMLってなんだろうか。。。
本読んだことあるけど毎回忘れてしまう。DMMなら知ってるけど笑

SQL文の種類みたいだ。

DDL(Data Definition Language)

DDL(Data Definition Language)は、データベースの構造を定義・変更するためのSQLコマンドの一種です。

主なDDLコマンドには以下があります:

  • CREATE - データベース、テーブル、ビューなどのオブジェクトを作成
  • ALTER - 既存のデータベースオブジェクトの構造を変更
  • DROP - データベースオブジェクトを削除
  • TRUNCATE - テーブル内のすべてのデータを削除
  • RENAME - オブジェクトの名前を変更

DDLは、データベースの「枠組み」を作る際に使用され、DML(Data Manipulation Language)やDCL(Data Control Language)と並んでSQLの重要な要素となっています。

DDLの特徴

  • データベースの物理的な構造を定義する
  • 自動コミットされる(トランザクション処理の対象外)
  • データディクショナリに影響を与える
  • スキーマの作成・変更に使用される

DML(Data Manipulation Language)

DML(Data Manipulation Language)は、データベース内のデータを操作するためのSQLコマンドの一種です。主に以下の4つの基本的な操作を行うために使用されます:

  • SELECT文:データベースからデータを検索・抽出する
  • INSERT文:データベースに新しいデータを挿入する
  • UPDATE文:既存のデータを更新する
  • DELETE文:データベースから既存のデータを削除する

これらのコマンドを使用することで、データベース内のデータを効率的に管理・操作することができます。

DCL(Data Control Language)

DCL(データ制御言語)は、データに対して行った変更を確定したり消したりします。そのほか、RDBMSのユーザーがデータベースにあるもの(テーブルなど)を操作する権限の設定も行います。DCLに分類される命令は次のとおりです。

  • COMMIT :データベースに対して行った変更を確定する
  • ROLLBACK :データベースに対して行った変更を取り消す
  • GRANT :ユーザーに操作の権限を与える
  • REVOKE :ユーザーから操作の権限を奪う

まとめ

普段書いているSQL文には分類があるのを知った。専門的なことを聞かれない限りは聞くことはないが、ベンダーとか大手の会社に行くとよく聞くので覚えておいた方が良さそう。

ミックさんの本が一番わかりやすかったですね。
https://www.amazon.co.jp/SQL-第2版-ゼロからはじめるデータベース操作-ミック-ebook/dp/B01HD5VWWO/ref=sr_1_1_sspa?__mk_ja_JP=カタカナ&crid=J2CHN1FLZKDR&dib=eyJ2IjoiMSJ9.qKHAE_oH4-sxiYmJFjL358BMQyZlu8NuscueSYgFU7QKf5o0vQ5jPQDo73sbcl_VdJEhgHNKN0WwzpKbWKOgblKuDjaZ7IVN2nCtYlslQLEeL9uWQZO0G-A2XdP7lW1YweO6tjXKm5jsbQLffKvcUxsZrSnvgez8VxbFLeohxmGwrI9o8ViigCax_tF3Ubuzl4UoP8qQil862oFHvrGet7mWw7J5hvc9ABX-cqAT6usljL3bPSybWXsSlfW7C144Qd3INsGYM7terG0F2V4Xe0Dr5nX9QVm5kRW9eyjhbgs.6sHOJXQkz2U9yCLpmXgYsOp5nHXFZ99yL161qSXi6-s&dib_tag=se&keywords=sql&qid=1733354612&sprefix=sql%2Caps%2C153&sr=8-1-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&psc=1

Discussion