今回は、Silverの「S2 運用管理 - S2.2 標準付属ツールの使い方」からの出題です。
desc foo;
\d foo
\! foo
show columns from foo;
select * from pg_tables where tablename = 'foo';
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2011年9月12日
正解はBです。
テーブルの列名と列属性を確認したい場面はよくありますが、その確認方法の実装はデータベースやクライアントツールの種類によって異なります。
PostgreSQL の psql では、\d メタコマンドのパラメータとしてテーブル名を指定すると、そのテーブルの列名と列属性の一覧を表示することができます。
パラメータを指定せずに、単に \d だけで実行すると、テーブル、ビューおよびシーケンスの一覧が表示されます。
選択肢Cの \! はシェルでコマンドを実行するためのメタコマンドで、この例では foo というコマンドを実行することになります(foo コマンドがなければエラーになります)。
psql には、この他にも \ で始まる多数のメタコマンドがあります。\? とすると、すべてのメタコマンドが表示されますので、確認しておきましょう。
他のRDBMSには、選択肢Aや選択肢Dのように desc あるいは show columns といったコマンドでテーブルの列と列属性を表示するものもあります。
選択肢Eの pg_tables はシステムカタログと呼ばれるテーブルの1つで、データベースが管理しているテーブルの名前、スキーマ名、所有者などの情報を格納していますが、テーブルの列に関する情報は持っていません。どのような情報が表示されるか、実際に試してみてください。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.