既存のテーブル「users」に新しいカラム「email」(VARCHAR(255)、NOT NULL)を追加するSQL文として正しいものはどれか?
解説
正解は「ALTER TABLE users ADD email VARCHAR(255) NOT NULL;」です。ALTER TABLE文は、既存のテーブル構造を変更するためのDDL(データ定義言語)コマンドです。テーブルのデータそのものではなく、テーブルの「設計図」を変更する操作にあたります。ALTER TABLEの主な操作カラムの追加(ADD)ALTER TABLE テーブル名 ADD カラム名 データ型 [制約];今回の問題のように、既存テーブルに新しいカラムを追加します。既にデータが入っているテーブルにNOT NULL制約付きのカラムを追加する場合、DEFAULT値を指定しないとエラーになるDBMSもあるので注意が必要です。カラムの変更(MODIFY / ALTER COLUMN)MySQL: ALTER TABLE テーブル名 MODIFY カラム名 新データ型;PostgreSQL: ALTER TABLE テーブル名 ALTER COLUMN カラム名 TYPE 新データ型;カラムのデータ型や制約を変更します。構文はDBMSによって異なる点に注意してください。カラムの削除(DROP COLUMN)ALTER TABLE テーブル名 DROP COLUMN カラム名;不要になったカラムをテーブルから削除します。テーブル名の変更(RENAME)MySQL: ALTER TABLE 旧名 RENAME TO 新名;PostgreSQL: ALTER TABLE 旧名 RENAME TO 新名;各選択肢について補足します。「MODIFY TABLE」というコマンドはSQL標準に存在しません。「UPDATE TABLE ... ADD COLUMN」のUPDATEはデータの更新に使うDML(データ操作言語)であり、テーブル構造の変更には使えません。「ALTER TABLE ... INSERT」のINSERTもデータ行の挿入に使うDMLであり、カラム追加の構文としては誤りです。テーブル構造の変更には必ずALTER TABLEを使うと覚えましょう。