【正解の解説】
表の構造を定義するデータ定義言語(DDL)の命令文は、データベース管理システムの外部ファイルであり、SQLとは完全に独立した別の専用言語を用いて記述する必要がある。
レストランのメニュー表(データの構造)を作るのも、実際の注文(データの操作)を聞くのも、すべて同じ日本語のスタッフと会話するのと同じです。SQLはデータベースを操作するための万能な共通言語であり、表の骨組みを作る命令(DDL)も、データを出し入れする命令(DML)も、すべてSQLという一つの言語の中に仲間として含まれています。したがって、外部の全く関係ない別言語を使う必要はありません。
【その他の選択肢の解説】
表内のデータを検索や更新するデータ操作言語(DML)の命令文は、手続き型のプログラミング言語と同様の制御構文を含んで記述される。
JavaやPythonなどの一般的なプログラミング言語は「1行目、2行目、もし〜なら繰り返す」という手続きを細かく指示します。しかしSQLは、まるでカフェで「アイスコーヒーを一つ」と頼むように、データベースに対して「こういう条件のデータをちょうだい」と結果だけを伝える非手続き型の言語です。そのため、複雑なループ処理や制御構文をゴリゴリ書くような仕組みにはなっていません。
データベースに対するアクセス権限の付与や剥奪を行うデータ制御言語(DCL)の命令文は、トランザクションの開始と終了を直接的に制御する。
データベースの権限管理(誰がこの部屋に入るか)を行うデータ制御言語(DCL)と、お金の振込処理のように「一連の作業をまとめて成功させるか、全部なかったことにするか」を決めるトランザクション制御は、役割が全く異なります。マンションの管理人(DCL)と、金庫の二重ロックの鍵を管理する人(TCL)を混同させる出題者の罠なので注意しましょう。
複数の表を結合してデータを効率的に抽出する検索の命令文は、非手続き型の言語仕様に基づいて実行すべき処理の手順を詳細に指定して記述する。
「データをどうやって効率よく探すか(インデックスを使うか、最初から舐めるか)」という具体的な手順の組み立ては、人間がSQLで細かく指示するのではなく、データベースの頭脳であるオプティマイザというシステムが勝手に考えて自動でやってくれます。人間は「何が欲しいか」のゴールだけを指定すればよく、手順まで詳細に指定する必要はないため、この記述は誤りとなります。