探索 PostgreSQL 的高级数据类型 - 第 二 部分
范围类型
范围类型提供了一种简洁的方式来表示单个数据库字段中的值范围。它们在从时间数据到数字间隔的各种领域中都有应用。在本篇博客文章中,我们将通过 DML/SQL 语句和 Navicat for PostgreSQL 16 来深入了解它们的使用(以及好处!)。
探索 PostgreSQL 的高级数据类型 - 第 一 部分
理解范围类型
在 PostgreSQL 中,范围类型允许表示连续的值范围。这些范围可以是不同的数据类型,如数值、日期或时间戳。例如,范围可能表示一段时间,一组温度或一个产品价格范围。
实例:跟踪租赁时长
假设,我们想在免费的 dvdrental sample database数据库中追踪租赁的时长。我们可以使用范围类型来有效地存储租赁持续时间。以下是创建和填充新的“rentals_with_rental_period”表的语句:
CREATE TABLE rentals_with_rental_period ( rental_id SERIAL PRIMARY KEY, customer_id INT, rental_duration INT, rental_period DATERANGE ); INSERT INTO rentals_with_rental_period (customer_id, rental_duration, rental_period) VALUES (1, 7, '[2024-02-01, 2024-02-08]'), (2, 5, '[2024-01-15, 2024-01-20]');
在 Navicat,我们可以通过表设计器来创建我们的表:
创建表后,我们可以向表中添加数据。请确保范围类型的值以方括号“[”开头,并以圆括号“)”结束。这样就告诉了 Navicat,这些值属于一个范围:
在本例中,“rental_period”列存储了表示每次租赁开始和结束日期的范围。我们可以使用 @> 运算符轻松查询包含特定日期的租赁:
扩展应用:数值区间
范围类型不仅限于时间数据。他们也可以用于表示数值区间。例如,假设产品的价格可以根据购买的数量在一定范围内变化,我们可以使用范围类型来有效地构建它:
CREATE TABLE product_price ( product_id SERIAL PRIMARY KEY, price_range NUMRANGE ); INSERT INTO product_price (price_range) VALUES ('[10.00, 20.00)'), ('[20.00, 30.00)'), ('[30.00, )');
在本例中,“price_range”列存储了表示每个产品的最低和最高价格范围。我们可以使用 @> 运算符来查询指定价格范围内的产品:
SELECT * FROM product_price WHERE price_range @> 25.00;
总结
PostgreSQL 中的范围类型提供了表示和查询连续值范围的一种强大方式。无论是处理时间数据、数值区间还是其他连续值,范围类型都提供了一种简洁且高效的解决方案。通过利用范围类型,开发人员可以增强其数据库模式的表达能力和灵活性,为构建更复杂的应用程序奠定基础。
你是否正在为 PostgreSQL 数据库开发寻找一款易使用的图形化工具?Navicat 16 for PostgreSQL 正好符合你的需求。点击 此处 下载全功能应用程序,免费试用 14 天!
PostgreSQL 相关技术内容
PostgreSQL 与 Navicat:数据库行业的中坚力量
在 PostgreSQL 中存储三元数据
PostgreSQL 的实体化视图介绍
PostgreSQL 实体化视图的使用
为什么在下一个 IT 项目中选择使用 PostgreSQL
PostgreSQL 中的多版本并发控制
使用 Navicat Monitor 3.0 监控 PostgreSQL
Navicat Monitor 3 中查看 PostgreSQL 实例详细信息
使用 Navicat Monitor 3 跟踪 PostgreSQL 实例查询
在 PostgreSQL 中设置查询超时
更多技术干货,欢迎点击 这里 查阅 Navicat 技术智库。