打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SQL的乐趣:文本和系统功能

SQL本身功能强大,Postgres支持更广泛的现代SQL,包括窗口函数和公用表表达式。但我很少写一个查询,我不想调整或格式化我从数据库中取回的数据。值得庆幸的是,Postgres拥有丰富的功能来帮助转换或格式化数据。这些内置函数使我不必在其他地方执行逻辑或编写自己的函数,换句话说,我必须做更少的工作,因为Postgres已经为我做了我一直很高兴的事情。

我们之前已经介绍了一系列功能,今天我们将看一些不同类别的功能来深入研究。

操纵字符串

在构建一个很好的cleamn报告时,我经常会对数据进行一些清理。这可以像组合我first_name和last_name列一样简单。在这种情况下,简单的连接非常有用:

SELECT first_name || last_name as nameFROM users;

但正如你所料,我可以做得更多。如果我正在执行一些关键字或分隔符的基本搜索,我可以搜索该字符串的位置。然后我可以将其提供给案例陈述:

SELECT CASE WHEN position(',' in my_string) > 0 then True ELSE False ENDFROM my_table;

当然,如果您正在处理分隔的某个字段,您可能需要采取上述操作来首先找到正确的字段。从那里你可能想要分割该分隔字段。为此,我们可以使用split_part并获取分隔字段的相应部分:

SELECT CASE WHEN position(',' in my_string) > 0 then split_part(my_string, ',', 1) ELSE null ENDFROM my_table;

最后,如果您正在处理混乱的输入/机器数据,可以使用许多函数来清理这些数据:

  • substr - 允许您提取子字符串
  • rtrim - 从右侧删除匹配字符串的最长部分
  • reverse - 下次你被要求在面试中反转一个字符串:)
  • regexp_replace - 当你需要正则表达式时

尺寸调整很简单

一种不常见的功能类别是使用磁盘/内存等大小的东西。如果您使用的工具记录有关您存储的数据量的数据,或者甚至使用有关Postgres数据库的系统信息,您经常会处理此问题。让我们说每月一次你要查询你的数据库以便跟踪它。

当你查询膨胀时,你会得到一些看起来像37502634的东西(这是以字节为单位)。乍一看,虽然我们注定要失败,明天数据库将会死亡,因为这看起来很多。但我真正想做的是更好地了解它。幸运的是,我没有必要拉起Wolfram Alpha来更好地了解它实际上有多大。我可以用pg_size_pretty:

SELECT pg_size_pretty(37502634::bigint); pg_size_pretty---------------- 36 MB(1 row)

呼。在我的40 GB桌面上,36MB不是我所关注的级别,所以我很安全。

我发现较少使用的是相反的。Postgres还可以让您轻松地从漂亮的形式转到原始数字:

SELECT pg_size_bytes ('40 GB'::text); pg_size_bytes--------------- 42949672960(1 row)

该管理功能是自理的和独特的类别操作/管理数据库时可以非常方便。在运行和管理数据库即服务时,我们会自己大量使用它们。

一天的功能

Postgres 函数使得在创建完美查询时更容易耗费时间的小事情。下次您尝试创建完美输出或使用查询时,SQL本身无法让您在那里探索Postgres内置函数。机会是Postgres已经完成了繁重的工作,使您的数据更容易处理。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
PostgreSQL操作
你了解世界上功能最强大的开源数据库吗?
「OushuDB」用户指南数据定义 创建和管理数据库 (上)
图学PowerBuilder--sqlca.sqlcode返回值
数据库“拣屎”(三)之 四大金刚 我们不一样
SQL手工注入基础详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服