本教學將向您介紹Oracle FLOAT
資料型別,並演示如何將FLOAT
型別應用於表定義浮點數的欄位(列)。
Oracle FLOAT
資料型別是NUMBER
資料型別的子型別。 其主要目的是促進與ANSI SQL FLOAT
資料型別的相容。
以下顯示FLOAT
資料型別的語法:
FLOAT(p)
我們只能指定FLOAT
資料型別的精度。不能指定尺度,因為Oracle資料庫從資料中解析尺度的。 FLOAT
的最大精度是126
。
在FLOAT
中,精度是二進位制位,而在NUMBER
中精度是十進位制數。可以使用以下公式在二進位制和十進位制精度之間進行轉換:
P(d) = 0.30103 * P(b)
根據這個公式,因二進位制精度的最大126
位數,大致等於十進位制數位數的38
位數。
為了使它與SQL ANSI FLOAT相容,Oracle提供了一些別名,如下表所示:
ANSI SQL FLOAT | Oracle FLOAT |
---|---|
FLOAT | FLOAT(126) |
REAL | FLOAT(63) |
DOUBLE PRECISION | FLOAT(126) |
例如,不使用FLOAT(63)
資料型別,可以使用REAL
別名代替。
首先,為了方便演示,這裡建立一個名為float_demo
的新表:
CREATE TABLE float_demo (
f1 FLOAT(1),
f2 FLOAT(4),
f3 FLOAT(7)
);
其次,向float_demo
表中插入一個新行:
INSERT
INTO
float_demo(
f1,
f2,
f3
)
VALUES(
1 / 3,
1 / 3,
1 / 3
);
第三,從float_demo
表中查詢資料:
SELECT
*
FROM
float_demo;
執行上面查詢語句,得到以下結果 -
在這個例子中,列f1
,f2
和f3
的資料型別是FLOAT(1)
,FLOAT(4)
和FLOAT(7)
。 因此,列f1
,f2
和f3
的相應精度為1(1 * 0.30103)
,2(4 * 0.30103)
和3(7 * 0.30103)
。
在本教學中,您已經了解了Oracle FLOAT
資料型別以及如何將其應用於定義表的浮點數的列列。