今回は、Silverの「S3 開発/SQL - S3.1 SQL コマンド(データ型)」からの出題です。
値が10桁を超える可能性がある場合は、INTEGER型を使用すべきではない。
値が20桁を超える可能性がある場合は、BIGINT型を使用すべきではない。
NUMERIC型は30桁を超える整数を扱うことができる。
NUMERIC型は整数、小数のどちらにも利用できる。
一般に、NUMERIC型の方がINTEGER型よりも演算が高速である。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2016年1月8日
整数を扱えるデータ型には、INTEGERの他に、BIGINTやNUMERICなどがあります。
INTEGERは4バイトなので、扱える数の範囲は-2147483648から+2147483647まで、つまり9桁以内なら問題ありませんが、10桁以上になるとオーバーフローする可能性があります。
BIGINTは8バイトなので、同じく19桁以上でオーバーフローする可能性があります。
NUMERICは10進演算ができるデータ型で、整数、小数のいずれにも使えます。
PostgreSQLでの桁数制限は整数部が131072桁、小数部が16383桁と事実上、無限です。
金額計算など正確さのためにNUMERICを使うべき場面はありますが、INTEGER型に比べると演算速度が非常に遅くなることに注意してください。
オーバーフローしない範囲の整数であれば、INTEGERを使うことが推奨されます。
誤っているものを選ぶ問題なので、正解はEです。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.