DDL(CREATE/ALTER/DROP)とは?DDLは自動で確定される

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

DDLとは(全体像)

DDLとは、データベースの「構造」を定義するためのSQLのことだ(Data Definition Languageの略)。

データを出し入れするDML(SELECT・INSERTなど)が「箱の中身」をあつかうのに対し、DDLは「箱そのもの(表の構造)」をあつかうと考えると分かりやすい。主要な命令は3つ。

ここで一番のポイント。この3つは、それぞれ役割が違う。「作る・変える・消すは、ぜんぶ同じ命令だ」と思い込むと誤りで、作るならCREATE、変えるならALTER、消すならDROPと分かれている。


詳しく:DDLは自動で確定される

ここが心臓部。ポイントを表で押さえよう。

DDLのポイント

項目やさしい意味
CREATE表を作る(入れ物を用意する)
ALTER構造を変える(列の追加・型の変更)
DROP表を削除する(元に戻らない)
自動COMMITDDLは自動で確定し、取り消せない

データを書き換えるDML(UPDATEなど)は、取り消し(ROLLBACK)ができる。だが、DDLは自動で確定(COMMIT)される

ここで一番のポイント。DDLは、実行すると自動で確定し、取り消し(ROLLBACK)ができない。「DDLも、あとから取り消せる」と思い込むと誤りで、とくにDROPで表を消すと、元には戻らない(戻すにはバックアップが必要)。だから、本番のデータベースでは慎重に実行する。

わかりやすく言い換えると

身近なたとえで整理しよう。

DDLは、「家(表)そのものを、建てる・改築する・取り壊す工事」のイメージ。中の家具(データ)を動かすDMLとは、あつかう対象が違う。

3命令は、「CREATE=建てる・ALTER=改築する・DROP=取り壊す」こと。要するに、入れ物に対する工事だ。

自動で確定するというのは、「工事はその場で確定して、なかったことにはできない」こと。つまり、取り壊した家(DROPした表)は、元に戻らない。


試験のツボ

🔴 一番出る:3命令の役割

①CREATE=表を作る、ALTER=構造を変える、DROP=表を削除

②DDLは、構造(入れ物)をあつかうSQL

🔴 次に出る:自動で確定される

①DDLは自動で確定(COMMIT)され、取り消し(ROLLBACK)ができない

②DROPで消した表は元に戻らない(バックアップが必要)

🟡 押さえると安定:DMLとの違い

①DMLはデータ(中身)をあつかい、取り消せる

②DDLは構造(入れ物)をあつかい、自動で確定する


よくある間違い

「作る・変える・消すは、ぜんぶ同じ命令だ」→ ✗  CREATEは作る、ALTERは変える、DROPは消す。命令が分かれている。

「DDLも、あとから取り消せる(ROLLBACKできる)」→ ✗  DDLは自動で確定され、取り消しができない。DROPで消した表は戻らない。

「DDLは、表の中のデータを書き換える命令だ」→ ✗  DDLは構造(入れ物)をあつかう。データの書き換えはDMLの役割。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(DDLの正体)

📝 オリジナル問題 1 DDLの正体

DDLに関する次の記述のうち、最も適切なものはどれか。

  1. 表などの、データベースの構造を定義するためのSQLのことだ
  2. 社員の出退勤を記録して、毎月の給与を計算するためのしくみだ
  3. 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
  4. 完成したシステムを宣伝して、より多く売るための広告活動である
エーアイコアラ
エーアイコアラ 解答・解説

解答は 1 です。

DDLは、表などのデータベースの構造を定義するSQLなのです。中身ではなく、入れ物(表)をあつかうなります。

選択肢2は給与計算、選択肢3は請求書の事務、選択肢4は広告で、どれも違うのです。

選択肢判定理由
1構造を定義するSQLで正しい
2給与計算のしくみではない
3請求書の事務の話
4広告活動ではない

オリジナル問題2(3命令の役割)

📝 オリジナル問題 2 CREATE・ALTER・DROPの役割

CREATE・ALTER・DROPに関する次の記述のうち、最も適切なものはどれか。

  1. 社員の給与を計算するときだけ、使われるものだとされている
  2. それぞれ、表の作成・構造変更・削除を行う命令のことである
  3. 取引先へ請求書を郵送するときだけ、使われるものだとされる
  4. すべて、表の中のデータを取り出すための命令だとされている
エーアイコアラ
エーアイコアラ 解答・解説

解答は 2 です。

CREATEは表の作成、ALTERは構造の変更、DROPは表の削除を行う、DDLの命令なのです。入れ物をあつかうなります。

選択肢1の給与、選択肢3の請求書、選択肢4の「データの取り出し」は、いずれも違うのです。

選択肢判定理由
1給与計算のときだけではない
2作成・変更・削除の命令で正しい
3請求書のときだけではない
4データの取り出しはSELECTの役割

オリジナル問題3(DDLの特性)

📝 オリジナル問題 3 DDLの特性

DDLの特性に関する次の記述のうち、最も適切なものはどれか。

  1. 社員の給与を計算するときだけ、確定するとされているものだ
  2. 取引先への請求書の枚数しだいで、確定するとされているのだ
  3. 自動で確定され、取り消し(ROLLBACK)ができないのだ
  4. DDLは、あとから自由に取り消せるものだとされているのである
エーアイコアラ
エーアイコアラ 解答・解説

解答は 3 です。

DDLは、実行すると自動で確定(COMMIT)され、取り消し(ROLLBACK)ができないのです。DROPで消した表は元に戻らないなります。

選択肢1の給与、選択肢2の請求書、選択肢4の「自由に取り消せる」は、いずれも違うのです。

選択肢判定理由
1給与計算で確定するのではない
2請求書の枚数で確定するのではない
3自動で確定し取り消せないで正しい
4自動で確定し取り消せない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る