DDLとDMLの主な違いは、DDLがデータベースの構造を変更するのに役立ち、DMLはデータベース内のデータを管理するのに役立つということです。
データベースとは、関連するデータの集合体です。
DBMS (データベース管理システム) は、データベースへのアクセスや管理を容易にするためのソフトウェアです。
DBMSは、複数のユーザーがデータにアクセスすることを可能にし、データに対するセキュリティを提供します。
リレーショナルDBMSは、データを表形式で保存する。
表は行と列で構成されている。
行は各レコードを表し、DMLカラムは属性を表す。
SQL (Structured Query Language) はリレーショナルデータベースでデータを保存、管理、検索するための言語です。
ユーザーはSQLコマンドを使用してデータベースに対して様々な操作を行うことができます。
SQLコマンドには、DDLとDMLの2種類があります。
DDLとは
DDL は Data Definition Language (データ定義言語) の略です。
DDLコマンドは、データベースの構造や他のデータベースオブジェクトを作成するのに役立ちます。
このコマンドは自動コミットされます。
したがって、変更はデータベースに永久に保存されます。
DDLコマンドには、create、drop、alterなどがあります。
createコマンドは、新しいデータベースとテーブルを作成するのに役立ちます。
drop コマンドはデータベースやテーブルを削除するのに役立ち、alter コマンドはテーブルのような既存のデータベースオブジェクトを変更するのに役立ちます。
以上が一般的なDDLコマンドです。
DMLとは
DMLとは、Data Manipulation Languageの略で、データ操作言語のことです。
DMLコマンドは、データベースに保存されているデータを管理するのに役立ちます。
しかし、DMLコマンドは自動コミットされません。
したがって、変更は永続的ではありません。
そのため、操作をロールバックすることが可能です。
DMLコマンドには、insert、update、delete、selectなどがあります。
insertコマンドは、テーブルに新しいレコードまたは行を格納するのに役立ち、updateコマンドは、テーブル内の既存のレコードを変更するのに役立ちます。
一方、deleteコマンドはテーブルから特定のレコードまたはレコードのセットを削除することができ、selectコマンドは1つまたは複数のテーブルから特定のレコードを取得することができます。
DDLとDMLの他に、DCLというコマンドもあります。
DCLは、データベースにアクセスできるユーザーを制御することができる。
DCLコマンドには、GrantとRevokeがあります。
グラント(Grant)はユーザーに権限を与え、リボーク(Revoke)はそのユーザーから与えられた権限を取り消す。
DDLとDMLの違い
定義
DDLは、データベーススキーマを定義するためのSQLコマンドの一種である。
これに対し、DMLはリレーショナル・データベースでデータを取得・管理するためのSQLコマンドの一種である。
これらの定義は、DDLとDMLの主な違いを説明しています。
ロングフォーム
DDLはData Definition Language、DMLはData Manipulation Languageの略です。
コマンド
create, drop, alter は DDL コマンド、insert, update, delete, select は DML コマンドです。
効果
DDLとDMLのもう一つの違いは、DDLコマンドはデータベース全体またはテーブルに影響を与えるが、DMLコマンドはテーブル内の1つまたは複数のレコードに影響を与えることである。
コミット
DDLコマンドを含むSQL文は、ロールバックすることができません。
一方、DMLコマンドのSQL文はロールバックすることができます。
従って、DDLとDMLの違いがもう一つ追加されます。
結論
SQLは、リレーショナルデータベースのデータに対して様々な操作を行うための言語です。
DDL と DML は、SQL コマンドの 2 つのタイプです。
DDL と DML の主な違いは、DDL はデータベースの構造を変更するのに役立ち、DML はデータベース内のデータを管理するのに役立つという点です。