SQL本身功能强大,Postgres支持更广泛的现代SQL,包括窗口函数和公用表表达式。但我很少写一个查询,我不想调整或格式化我从数据库中取回的数据。值得庆幸的是,Postgres拥有丰富的功能来帮助转换或格式化数据。这些内置函数使我不必在其他地方执行逻辑或编写自己的函数,换句话说,我必须做更少的工作,因为Postgres已经为我做了我一直很高兴的事情。
我们之前已经介绍了一系列功能,今天我们将看一些不同类别的功能来深入研究。
在构建一个很好的cleamn报告时,我经常会对数据进行一些清理。这可以像组合我first_name和last_name列一样简单。在这种情况下,简单的连接非常有用:
但正如你所料,我可以做得更多。如果我正在执行一些关键字或分隔符的基本搜索,我可以搜索该字符串的位置。然后我可以将其提供给案例陈述:
SELECT CASE WHEN position(',' in my_string) > 0 then True ELSE False ENDFROM my_table;
当然,如果您正在处理分隔的某个字段,您可能需要采取上述操作来首先找到正确的字段。从那里你可能想要分割该分隔字段。为此,我们可以使用split_part并获取分隔字段的相应部分:
最后,如果您正在处理混乱的输入/机器数据,可以使用许多函数来清理这些数据:
一种不常见的功能类别是使用磁盘/内存等大小的东西。如果您使用的工具记录有关您存储的数据量的数据,或者甚至使用有关Postgres数据库的系统信息,您经常会处理此问题。让我们说每月一次你要查询你的数据库以便跟踪它。
当你查询膨胀时,你会得到一些看起来像37502634的东西(这是以字节为单位)。乍一看,虽然我们注定要失败,明天数据库将会死亡,因为这看起来很多。但我真正想做的是更好地了解它。幸运的是,我没有必要拉起Wolfram Alpha来更好地了解它实际上有多大。我可以用pg_size_pretty:
SELECT pg_size_pretty(37502634::bigint); pg_size_pretty---------------- 36 MB(1 row)
呼。在我的40 GB桌面上,36MB不是我所关注的级别,所以我很安全。
我发现较少使用的是相反的。Postgres还可以让您轻松地从漂亮的形式转到原始数字:
该管理功能是自理的和独特的类别操作/管理数据库时可以非常方便。在运行和管理数据库即服务时,我们会自己大量使用它们。
Postgres 函数使得在创建完美查询时更容易耗费时间的小事情。下次您尝试创建完美输出或使用查询时,SQL本身无法让您在那里探索Postgres内置函数。机会是Postgres已经完成了繁重的工作,使您的数据更容易处理。
联系客服