sql >> データベース >  >> RDS >> PostgreSQL

Postgresデータ型NUMERICは符号付きの値を保存できますか?

    確かに任意精度のタイプnumericを使用できます @Simonがコメントしたように、精度は5、スケールは1ですが、構文エラーはありません。カンマを使用する(, )ドットの代わりに(. )タイプ修飾子内:

    SELECT numeric(5,1) '-999.9' AS nr_lower
         , numeric(5,1) '9999.9' AS nr_upper;
    
     nr_lower | nr_upper
    ----------+----------
       -999.9 |   9999.9
    

    文字列リテラルのマイナス記号とドットは、許可されている有効数字の最大値(precision)にはカウントされません。 )。
    長さを制限する必要がない場合は、numericを使用してください。 。
    最小値と最大値を適用する必要がある場合は、チェック制約を追加します。

    CHECK (nr_column BETWEEN -999.9 AND 9999.9)
    

    numeric 番号を正確に保存します 。絶対精度が不要で、小さな丸め誤差が問題ない場合は、浮動小数点型の1つdouble precisionを使用することもできます。 (float8 )またはrealfloat4

    または、小数点以下1桁しか許可されないため、10を掛けて、integerを使用できます。 、これが最も効率的なストレージになります。4バイト、丸め誤差がなく、処理が最速です。番号を適切に使用して文書化するだけです。

    マニュアルの数値タイプの詳細。




    1. SQLServerでクラスター化インデックスまたは非クラスター化インデックスを使用する場合

    2. オーケストレーションツールを使用せずにMariaDBGaleraクラスターを実行する-DBコンテナー管理:パート2

    3. JDBCアプリケーションでPreparedStatement.cancel()を呼び出すと、Oracleデータベースで実際にそれを強制終了しますか?

    4. オフライン再編成ウィザードの使用