POSTGRESQL 新型字段类型怎么用


这篇文章给大家分享的是有关POSTGRESQL 新型字段类型怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。POSTGRESQL 在同种类型的数据库中,字段类型算是最丰富的,其中POSTGRESQL 里面有一种字段类型叫 RANGE,范围类型。这样的类型不曾在传统三大数据库中觅得踪影。下面就说说,这样的新字段类型解决了什么问题?金融中,都有类似合同之类的东西,合同一般都有起始日期和结束日期,一般就算提前还款的情况下,虽然可以提前结清,但原有的合同的初始设定的日期还是不能被随意修改的。如果我们在传统数据库中,怎么操作,我们可能会建立两个字段,举例我们一个叫 START_TIME 另一个叫 END_TIME 来记录起始和结束的日期。在数据库中这样解决逻辑问题,看似习以为常,但是其实深层次的去挖掘,这其实是在数据库中将一个整体进行了拆分。那我们在POSTGRESQL 中怎么做呢?下面不过多讲理论,直接切入主题我们建立一个表,里面有一个类似其他数据库一样的自增列,并且有一个contract_no 合同号,还有一个不曾见面的 tsrange 类型。这就是我们今天要提到的,时间范围类型。以下是所有测试数据首先我们插入两条数据,在里面我们使用 tsrange的类型函数,很明显,这是一个字段包含了两个时间的字段
那这有什么作用,例如我们要统计 我们现在的合同初始日期在 2019-01-01 以后生效的合同。select * from contract where contract_start_end_time > tsrange(‘2019-01-01′,’2020-01-01’);很容易就能查出相关信息,当然这并不能体现这样的字段类型的优点那我们继续下面我想查一下,合同在 2019-01-30 日开始 到 2020-12-20 日结束的合同select * from contract where contract_start_end_time > tsrange(‘2019-01-30′,’2020-12-20’);很明显,一下子就查出来了。我们在创建针对这样的字段的索引细心的人可能看见,这索引看起来很奇怪,当然这里面也有乾坤,也是其他三大数据库不具备的能力,此处略过。我们在来难一点的查询,我们查一下包含,这也是传统在设计这方面需要用到的,我们需要查询 合同在 2019-02-01 ,并且 结束在 2021-02-03 和所有合同号看这也是手拿把攥的。可能还有人问,要是我查询不包含呢,哪怕初始日期,或者结束日期其中一个不再内也要查出来,当然这对 POSTGRESQL 也不是问题select * from contract where contract_start_end_time
其实POSTGRESQL 类似这样的功能还有很多,同时对于这样的范围字段还有一个注意的事情,就是 我们在查询的时候 喜欢用 >= =
看不懂的同学,请补习一下 集合的概念postgresqlpostgres@[local]=#5432=;insert into contract (contract_no,contract_start_end_time) values (‘20190130VB’,tsrange(‘2019-01-2′,’2021-02-2′,'[]’));INSERT 0 1postgresqlpostgres@[local]=#5432=;insert into contract (contract_no,contract_start_end_time) values (‘20190130VB’,tsrange(‘2019-01-2′,’2021-02-2′,'()’));INSERT 香港云主机 0 1postgresqlpostgres@[local]=#5432=;insert into contract (contract_no,contract_start_end_time) values (‘20190130VB’,tsrange(‘2019-01-2′,’2021-02-2′,'[)’));INSERT 0 1postgresqlpostgres@[local]=#5432=;insert into contract (contract_no,contract_start_end_time) values (‘20190130VB’,tsrange(‘2019-01-2′,’2021-02-2′,'(]’));上面的虽然数据一致,但如果不注意设置的集合性质,那是要出问题的,大家可以从下面的两个图中看结果,只是一个 >= 和 > 的区别,给出的结果集是不一样的,所以处理这样的查询要小心最后有同学问,如果我不在后面添加集合的符合,那我默认输入的是什么样的格式()对,就是这样的集合格式。有时候从字段的类型设计,可以看出POSTGRESQL 为什么在关系型数据库后面还要添加一个 OBJECT 数据库。感谢各位的阅读!关于“POSTGRESQL 新型字段类型怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

相关推荐: spring-boot-2.0.3之redis缓存实现,不是你想的那样哦

前言  开心一刻    小白问小明:“你前面有一个5米深的坑,里面没有水,如果你跳进去后该怎样出来了?”小明:“躺着出来呗,还能怎么出来?”小白:“为什么躺着出来?”小明:“5米深的坑,还没有水,跳下去不死就很幸运了,残是肯定会残的,不躺着出来,那能怎么出来?…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 08/29 19:31
Next 08/29 19:32

相关推荐