S3 開発/SQL - S3.1 SQL コマンド(データ型)」からの出題です。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2021年9月22日
整数については、2バイト(-32768から+32767まで)のsmallint型、4バイト(-2147483648から+2147483647まで)のinteger型、8バイト(-9223372036854775808から+9223372036854775807まで)のbigint型がサポートされます。多くの環境ではintegerだけで十分でしょうが、ディスク容量に厳しい制約があり、比較的小さな整数しか使わない場合はsmallint型を、また20億を超える大きな整数を使う可能性がある場合はbigint型を使用します。integerの代わりにintと書くこともできます。bigintの代わりにint8という表記もサポートされますが、long intという書き方はできません。
データベースの種類によっては、1バイトの整数や、非負(unsigned)の整数を扱う機能がありますが、PostgreSQLではサポートされません。
浮動小数点を扱うために、real型(単精度)とdouble precision型(倍精度)がサポートはされていますが、これらは10進数を扱うときに、例えば0.1の10倍が1にならない、といった誤差が発生します。そのような誤差なしに10進演算を行う(金銭の計算などで重要です)ためにnumeric型がサポートされています。numeric型では最大桁数と小数点以下の桁数を指定することでデータ型を定義しますが、最大で1000桁まで指定できます(事実上、無制限と言っても良さそうですね)。なお、numericの代わりにdecimalと書くこともできます。
したがって正解はAとEです。
PostgreSQLで使用できる数値データ型については https://www.postgresql.jp/document/12/html/datatype-numeric.html を参照してください。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.