今回は、Silverの「S3 開発/SQL - S3.1 SQL コマンド(テーブル定義)」からの出題です。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2019年9月25日
テーブルの定義は事前にしっかりと設計を行い、CREATE TABLEで作成した後はできる限り変更しないようにしたいものですが、変更が必要になったときのために、ALTER TABLEというコマンドが用意されており、CREATE TABLEで指定できるもののほとんどが変更できるようになっています。
テーブル名を変更するには ALTER TABLE old_name RENAME TO new_name のようにします。所有者を変更するには ALTER TABLE table_name OWNER TO new_owner のようにします。
列の名前は ALTER TABLE old_name RENAME old_column_name TO new_column_name のようにすれば変更できます。
列のデータ型は、ALTER TABLE table_name ALTER column_name SET DATA TYPE new_type のようにすれば変更することができます。
列の並び順は、例えば SELECT * FROM table_name のような形式で検索するときに表示される列の順序に影響を与えますが、PostgreSQL ではALTER TABLEでこれを変更することはできません(変更できるRDBMSもあります)。列の表示順は、SELECT column1, column2... のように明示的に列を指定することで制御します。
したがって正解はEです。
ALTER TABLEは既存のデータに大きく影響を与える可能性があるので、実行にあたっては慎重になる必要があるのはもちろんのことですが、RDBMSの種類によって微妙に構文が異なる点が多くあることにも注意してください。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.