非整数
概要
非整数の数値を指定するには、非整数(浮動小数点および固定小数点)データ型を使用します。 異なる浮動小数点データ型は異なる精度の数値を表します。
| データ型 | 説明 | 10進数の精度 |
|---|---|---|
FLOAT |
Inexact 32-ビットの浮動小数点数 | 7 |
DOUBLE |
Inexact 64-?ビットの浮動小数点数 | 15 |
DECIMAL |
任意精度の数値 | 上限なし |
Syntax
Where
FLOATDOUBLEDOUBLE PRECISIONDECIMALPRIMARY KEYの一部とすることができます。-
DOUBLEDOUBLE PRECISIONはエイリアスです。 -
non_integer_floating_point_literalFLOATDOUBLEDOUBLE PRECISIONのタイプの値に使われます。 -
non_integer_fixed_point_literalDECIMALタイプの値に使用されます。
セマンティクス
- 異なる浮動小数点および固定小数点データタイプの値は、互いに比較可能であり、変換可能です。
- 浮動小数点型から
DECIMALNaNInfinity-Infinityに対してエラーが発生します。
- 浮動小数点型から
- 非整数の数値データ型の値は、整数には変換できるが、整数には比較も変換もできません。
- 特殊な浮動小数点値の順序は、(昇順)として定義されています。
-InfinityInfinityNaNとなります。
例題
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
- データタイプ