探索 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,我们可以通过表设计器来创建我们的表:

rentals_with_rental_period_in_table_designer (59K)

创建表后,我们可以向表中添加数据。请确保范围类型的值以方括号“[”开头,并以圆括号“)”结束。这样就告诉了 Navicat,这些值属于一个范围:

rentals_with_rental_period_table (24K)

在本例中,“rental_period”列存储了表示每次租赁开始和结束日期的范围。我们可以使用 @> 运算符轻松查询包含特定日期的租赁:

range_query (40K)

扩展应用:数值区间

范围类型不仅限于时间数据。他们也可以用于表示数值区间。例如,假设产品的价格可以根据购买的数量在一定范围内变化,我们可以使用范围类型来有效地构建它:


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 技术智库。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/738660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

9个免费游戏后端平台

在这篇文章中,您将看到 九个免费的游戏服务平台提供商,这可以帮助您开始在线多人游戏,而无需预先投入大量资金。 每个提供商都有非常独特的功能,因此成本应该只是决定时要考虑的方面之一。 我还从低预算项目的角度对免费提供商进…

信钰证券|AI用电需求井喷 新能源板块“火花”四溅

近日,“ChatGPT耗电量惊人”登上热搜。据估算,ChatGPT每天要响应大约2亿个请求,日耗费电力超越50万度,相当于1.7万个美国家庭的用电量。 AI越智能,需要处理的信息就越多,所需电力也将呈几何级增加。马斯克…

SpringBoot注解--08--注解@JsonInclude

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 JsonInclude注解是jackSon中最常用的注解之一,是为实体类在接口序列化返回值时增加规则的注解 1.JsonInclude用法2.JsonInclude注解中的规则有 案例需求…

Kubernetes--ingress实现七层负载

目录 一、传统方式:不借助ingress实现七层代理 二、nginx-ingress 三、使用ingress实现七层代理 四、部署ingrss-nginx及功能 五、样例 1.Ingress-nginx HTTP代理访问 2.Ingress HTTPS代理访问(会话卸载层) 3.Nginx进行BasicAuth&…

第七届强网杯-PWN-【warmup】

文章目录 warmup libc 2.35检查IDA逆向maindeldelete_noteadd_noteshow_noteinput_numberread_16atoi __errno_location()相关解释prctl相关 思路高版本off by null利用技巧产生chunk extend泄露libc基地址泄露heap基地址修改放入tcachebin中的chunk的fd为stdout最后add两个chu…

专业138+总分400+南航南京航空航天大学878考研经验电子信息与通信工程,真题,大纲,参考书

经过一年的复习,顺利被南京航空航天大学录取,初试专业课878数字电路和信号与系统138,总分400,回看这一年的复习,从择校到考研备考经历了很多,也有很多想和大家分享的复习经验,希望对大家复习有所…

EI级 | Matlab实现GCN基于图卷积神经网络的数据多特征分类预测

EI级 | Matlab实现GCN基于图卷积神经网络的数据多特征分类预测 目录 EI级 | Matlab实现GCN基于图卷积神经网络的数据多特征分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.GCN基于图卷积神经网络的数据分类预测 Matlab2023 2.多输入单输出的分类预测&#xf…

docker学习进阶篇

一、dockerfile解析 官方文档: Dockerfile reference | Docker Docs 1.1、dockfile是什么? dockerfile是用来构建docker镜像的文本文件,由一条条构建镜像所需的指令和参数构成的脚本。 之前我们介绍过通过具体容器反射构建镜像(docker comm…

leetcode 热题 100_螺旋矩阵

题解一: 模拟:定义四个边界,指针按右下左上的顺序遍历,每遍历一条边,边界就减一,并且在某个方向没有可以遍历的数时直接返回。 import java.util.ArrayList; import java.util.List;class Solution {publi…

[AIGC] Kafka解析:分区、消费者组与消费者的关系

Apache Kafka是一个分布式事件流平台,它是处理实时数据的强大工具。而理解Kafka的关键概念:分区(Partition)、消费者组(Consumer Group)和消费者(Consumer)的关系对于正确地使用Kafk…

【leetcode C++】最小栈

leetcode 155. 最小栈 题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获…

windows系统关机后自动重启解决方法

windows系统关机后自动重启解决方法 wini 进去系统设置的关于界面->高级系统设置高级->环境变量将自动重新启动取消->最后确定电源和睡眠->其他电源设置选择看电源按钮的功能更改当前不可用设置->取消快速启动 wini 进去系统设置的关于界面->高级系统设置 高…

Learn OpenGL 07 摄像机

定义摄像机参数 glm::vec3 cameraPos glm::vec3(0.0f, 0.0f, 3.0f);//摄像机位置glm::vec3 cameraTarget glm::vec3(0.0f, 0.0f, 0.0f);glm::vec3 cameraDirection glm::normalize(cameraPos - cameraTarget);//摄像机方向,指向z轴正方向 glm::vec3 up glm::vec…

20240309web前端_第一周作业_豆瓣电影

作业四&#xff1a;豆瓣电影 成果展示&#xff1a; 完整代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0…

探索计算机视觉的未来

目录 前言1 计算机视觉简介2 计算机视觉的基本原理2.1 图像获取2.2 图像预处理2.3 特征提取2.4 模式识别 3 深度学习与计算机视觉3.1 深度学习的基本原理3.2 深度学习在计算机视觉中的应用 4 计算机视觉的应用领域4.1 人脸识别4.2 物体识别4.3 图像分割4.4 视频追踪 5 未来发展…

Midjourney从入门到实战:图像生成命令及参数详解

目录 0 专栏介绍1 Midjourney Bot常用命令2 Midjourney绘图指令格式3 Midjourney绘图指令参数3.1 模型及版本3.2 画面比例3.3 风格化3.4 图片质量3.5 混乱值3.6 随机数种子3.7 重复贴图3.8 停止3.8 垫图权重3.9 提示词权重分割 0 专栏介绍 &#x1f525;Midjourney是目前主流的…

Vue3全家桶 - VueRouter - 【3】嵌套路由【children】

嵌套路由【children】 如果在路由视图中展示的组件包含自己的路由占位符&#xff08;路由出口&#xff09;&#xff0c;则此处会用到嵌套路由&#xff1b;如图所示&#xff1a;点击关于链接&#xff0c;则会展示About组件&#xff0c;在其组件中又包含了路由链接和路由占位符&…

蓝桥杯-ISBN号码

此题然让本人纠结了很久&#xff0c;真的好多坑。。。。果然还是太菜了。 完整代码以及思路解析(在注释中) #include <iostream> using namespace std; int main() {string num;cin>>num; int count0;int w1;for(int i0;i<10;i){if((i!1)&&(i!5)) //坑…

常见的限流算法- python版本

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen 在系统的稳定性设计中&#xff0c;需要考虑到的就是限流&#xff0c;避免高并发…