過去問ドリル

DP-900:Microsoft Azure Data Fundamentals Azure のリレーショナルデータ 問2

Azure のリレーショナルデータ/リレーショナルの概念

在庫管理データベースで、既存の行のデータ値は一切変更せずに、商品テーブルに新しい列(割引率)を追加して構造を変更したい。このために実行するステートメントが属する分類として適切なものはどれか。

当サイトのオリジナル問題(DP-900:Microsoft Azure Data Fundamentalsの出題範囲「Azure のリレーショナルデータ」に対応。実際の試験問題ではありません)

正解:B

解説

SQLのステートメントは役割によっていくつかの分類に分かれます。CREATE TABLEやALTER TABLE、DROP TABLEのようにテーブルや列などのオブジェクトの構造を定義・変更するステートメントはDDL(データ定義言語)に分類されます。これに対し、SELECTやINSERT、UPDATE、DELETEのように行データそのものを操作するステートメントはDML(データ操作言語)に分類され、両者は役割が異なります。本問のように行データの値を変更せずにテーブルへ列を追加する操作はテーブルの構造変更にあたるため、DDLに分類されるステートメントを使用します。

選択肢ごとの解説

  • A誤り。DML(データ操作言語)はSELECTやINSERT、UPDATE、DELETEなど、テーブルに格納されている行データを操作するためのステートメントの分類であり、テーブル自体の構造変更には使いません。
  • B正しい。ALTER TABLEのようにテーブルや列、インデックスなどのオブジェクトの構造そのものを定義・変更するステートメントはDDL(データ定義言語)に分類され、既存の行データの値には影響を与えません。
  • C誤り。DCL(データ制御言語)はGRANTやREVOKEなど、データベースオブジェクトへのアクセス権限を管理するためのステートメントの分類であり、テーブルの列構成を変更する用途ではありません。
  • D誤り。TCL(トランザクション制御言語)はCOMMITやROLLBACKなど、一連の処理をトランザクションとして確定・取り消しするためのステートメントの分類であり、テーブル構造の変更には使いません。
DP-900:Microsoft Azure Data Fundamentalsの問題を演習モードで解く