非整数
概要
非整数の数値を指定するには、非整数(浮動小数点および固定小数点)データ型を使用します。 異なる浮動小数点データ型は異なる精度の数値を表します。
データ型 | 説明 | 10進数の精度 |
---|---|---|
FLOAT |
Inexact 32-ビットの浮動小数点数 | 7 |
DOUBLE |
Inexact 64-?ビットの浮動小数点数 | 15 |
DECIMAL |
任意精度の数値 | 上限なし |
Syntax
Where
FLOAT
DOUBLE
DOUBLE PRECISION
DECIMAL
PRIMARY KEY
の一部とすることができます。-
DOUBLE
DOUBLE PRECISION
はエイリアスです。 -
non_integer_floating_point_literal
FLOAT
DOUBLE
DOUBLE PRECISION
のタイプの値に使われます。 -
non_integer_fixed_point_literal
DECIMAL
タイプの値に使用されます。
セマンティクス
- 異なる浮動小数点および固定小数点データタイプの値は、互いに比較可能であり、変換可能です。
- 浮動小数点型から
DECIMAL
NaN
Infinity
-Infinity
に対してエラーが発生します。
- 浮動小数点型から
- 非整数の数値データ型の値は、整数には変換できるが、整数には比較も変換もできません。
- 特殊な浮動小数点値の順序は、(昇順)として定義されています。
-Infinity
Infinity
NaN
となります。
例題
ycqlsh:example> CREATE TABLE sensor_data (sensor_id INT PRIMARY KEY, float_val FLOAT, dbl_val DOUBLE, dec_val DECIMAL);
ycqlsh:example> INSERT INTO sensor_data(sensor_id, float_val, dbl_val, dec_val) VALUES (1, 321.0456789, 321.0456789, 321.0456789);
整数リテラルも使用することができます (upsert セマンティクスを使用して、存在しない行を更新する)。存在しない行を更新する upsert セマンティクスの使用)。
ycqlsh:example> UPDATE sensor_data SET float_val = 1, dbl_val = 1, dec_val = 1 WHERE sensor_id = 2;
ycqlsh:example> SELECT * FROM sensor_data;
sensor_id | float_val | dbl_val | dec_val-----------+-----------+-----------+------------- 2 | 1 | 1 | 1 1 | 321.04568 | 321.04568 | 321.0456789
See also
- データタイプ