PostgreSQL 教程: real 数据类型

六月 10, 2024

摘要:在本教程中,您将学习如何使用 PostgreSQL 的real数据类型,在数据库中存储单精度浮点数。

目录

PostgreSQL real 数据类型简介

real数据类型允许您在数据库中存储单精度浮点数。

real 类型的值占用4个字节的存储空间。其有效范围从1E-371E+37

通常,您会使用real数据类型,来存储具有相对较大范围的浮点数,而且精度没那么重要,或者当您担心存储空间时也可以考虑使用。

但是,如果需要更高的精度,可以使用 double precision 数据类型。

PostgreSQL real 数据类型示例

首先,创建一个表,名为weathers,用来存储风速(米每秒)和温度(℃)数据:

CREATE TABLE weathers(
    id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
    location VARCHAR(255) NOT NULL,
    wind_speed_mps REAL NOT NULL,
    temperature_celsius REAL NOT NULL,
    recorded_at TIMESTAMP NOT NULL
);

第二步,插入行weathers表中:

INSERT INTO weathers (location, wind_speed_mps, temperature_celsius, recorded_at) 
VALUES
    ('New York', 5.2, 15.3, '2024-04-19 09:00:00'),
    ('New York', 4.8, 14.9, '2024-04-19 10:00:00'),
    ('New York', 6.0, 16.5, '2024-04-19 11:00:00'),
    ('New York', 5.5, 15.8, '2024-04-19 12:00:00'),
    ('New York', 4.3, 14.2, '2024-04-19 13:00:00'),
    ('New York', 5.9, 16.1, '2024-04-19 14:00:00'),
    ('New York', 6.8, 17.3, '2024-04-19 15:00:00'),
    ('New York', 5.1, 15.6, '2024-04-19 16:00:00'),
    ('New York', 4.7, 14.8, '2024-04-19 17:00:00'),
    ('New York', 5.3, 15.9, '2024-04-19 18:00:00');

第三步,计算日期为April 19, 2024地址在New York平均风速和温度:

SELECT
  AVG(wind_speed_mps)       wind_speed,
  AVG(temperature_celsius) temperature_celsius
FROM
  weathers
WHERE
  location = 'New York'
  AND DATE(recorded_at) = '2024-04-19';

输出:

    wind_speed     | temperature_celsius
-------------------+---------------------
 5.360000038146973 |  15.639999961853027
(1 row)

总结

使用 PostgreSQL 的real数据类型,在数据库中存储单精度浮点数。

了解更多

PostgreSQL 教程:数据类型

PostgreSQL 文档:浮点类型