PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.5. 二进制串函数和操作符

简介: 9.5. 二进制串函数和操作符 本节描述那些检查和操作类型为bytea的值的函数和操作符。 SQL定义了一些使用关键字而不是逗号来分割参数的串函数。详情请见表 9.11。PostgreSQL也提供了这些函数使用常规函数调用语法的版本(参阅表 9.12)。

9.5. 二进制串函数和操作符

本节描述那些检查和操作类型为bytea的值的函数和操作符。

SQL定义了一些使用关键字而不是逗号来分割参数的串函数。详情请见表 9.11PostgreSQL也提供了这些函数使用常规函数调用语法的版本(参阅表 9.12)。

注意

本页中显示的示例结果假设服务器参数bytea_output被设置为escape(传统PostgreSQL格式)。

表 9.11. SQL二进制串函数和操作符

函数 返回类型 描述 例子 结果
string || string bytea 串连接 E'\\\\Post'::bytea || E'\\047gres\\000'::bytea \\Post'gres\000
octet_length(string) int 二进制串中的字节数 octet_length(E'jo\\000se'::bytea) 5
overlay(string placing string from int[for int]) bytea 替换子串 overlay(E'Th\\000omas'::bytea placing E'\\002\\003'::bytea from 2 for 3) T\\002\\003mas
position(substring in string) int 指定子串的位置 position(E'\\000om'::bytea in E'Th\\000omas'::bytea) 3
substring(string [from int] [for int]) bytea 提取子串 substring(E'Th\\000omas'::bytea from 2 for 3) h\000o
trim([bothbytes from string) bytea string的开头或结尾删除只包含出现在bytes中的字节的最长串 trim(E'\\000\\001'::bytea from E'\\000Tom\\001'::bytea) Tom

还有一些二进制串处理函数可以使用,在表 9.12列出。 其中有一些是在内部使用,用于实现表 9.11列出的 SQL 标准串函数。

表 9.12. 其他二进制串函数

函数 返回类型 描述 例子 结果
btrim(string byteabytes bytea) bytea string的开头或结尾删除只包含出现在bytes中的字节的最长串 btrim(E'\\000trim\\001'::bytea, E'\\000\\001'::bytea) trim
decode(string text,format text) bytea string中的文本表示解码二进制数据。format的参数和在encode中一样。 decode(E'123\\000456', 'escape') 123\000456
encode(data bytea,format text) text 将二进制数据编码为一个文本表示。支持的格式有:base64hexescapeescape将零字节和高位组字节转换为八进制序列(\nnn)和双反斜线。 encode(E'123\\000456'::bytea, 'escape') 123\000456
get_bit(stringoffset) int 从串中抽取位 get_bit(E'Th\\000omas'::bytea, 45) 1
get_byte(stringoffset) int 从串中抽取字节 get_byte(E'Th\\000omas'::bytea, 4) 109
length(string) int 二进制串的长度 length(E'jo\\000se'::bytea) 5
md5(string) text 计算string的MD5哈希码,以十六进制形式返回结果 md5(E'Th\\000omas'::bytea) 8ab2d3c9689aaf18 b4958c334c82d8b1
set_bit(string,offsetnewvalue) bytea 设置串中的位 set_bit(E'Th\\000omas'::bytea, 45, 0) Th\000omAs
set_byte(string,offsetnewvalue) bytea 设置串中的字节 set_byte(E'Th\\000omas'::bytea, 4, 64) Th\000o@as

get_byteset_byte把一个二进制串中的一个字节计数为字节 0。get_bitset_bit在每一个字节中从右边起计数位;例如位 0 是第一个字节的最低有效位,而位 15 是第二个字节的最高有效位。

参见第 9.20 节中的聚集函数string_agg以及第 34.4 节中的大对象函数。

本文转自PostgreSQL中文社区,原文链接:9.5. 二进制串函数和操作符

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
5月前
|
SQL 数据管理 关系型数据库
SQL 语言入门:开启数据管理的大门
在数字化时代,数据已成为核心资产,而 SQL 作为操作关系型数据库的标准语言,是数据从业者、程序员及办公人员必备技能。本文从基础概念讲起,详解 SQL 的核心用法,包括数据查询、插入、修改、删除及表结构操作,并通过实例演示帮助读者快速上手。掌握 SQL,不仅能提升数据处理效率,更为深入理解数据管理打下坚实基础。
|
4月前
|
SQL Oracle 关系型数据库
SQL语言小结
针对数据库、表单和数据行的增删改,没有涉及到sql真正的用途也就是查询,sql提供的查询语句的关键字占 sql 语言的一半之多,查询语句还是得单拿出来讲,不然太多了。 因为没有涉及到查询,所以sql的新增和修改都是很笼统的做法,drop、alter drop、delete这些很容易,逻辑性也不强,再次说明sql的真正精髓在于查询,不然为啥叫做结构化查询语言
338 0
|
4月前
|
SQL 关系型数据库 MySQL
(SQL)SQL语言中的查询语句整理
查询语句在sql中占了挺大一部分篇幅,因为在数据库中使用查询语句的次数远多于更新与删除命令。而查询语句比起其他语句要更加的复杂,可因为sql是数据库不可或缺的一部分,所以即使不懂,也必须得弄懂,以上。
320 0
|
6月前
|
SQL 人工智能 数据挖掘
如何在`score`表中正确使用`COUNT`和`AVG`函数?SQL聚合函数COUNT与AVG使用指南
本文三桥君通过score表实例解析SQL聚合函数COUNT和AVG的常见用法。详解COUNT(studentNo)、COUNT(score)、COUNT()的区别,以及AVG函数对数值/字符型字段的不同处理,特别指出AVG()是无效语法。实战部分提供6个典型查询案例及结果,包含创建表、插入数据的完整SQL代码。产品专家三桥君强调正确理解函数特性(如空值处理、字段类型限制)对数据分析的重要性,帮助开发者避免常见误区,提升查询效率。
380 0
|
11月前
|
SQL 存储 缓存
YashanDB SQL语言
YashanDB SQL语言
|
12月前
|
SQL 数据可视化 IDE
SQL做数据分析的困境,查询语言无法回答的真相
SQL 在简单数据分析任务中表现良好,但面对复杂需求时显得力不从心。例如,统计新用户第二天的留存率或连续活跃用户的计算,SQL 需要嵌套子查询和复杂关联,代码冗长难懂。Python 虽更灵活,但仍需变通思路,复杂度较高。相比之下,SPL(Structured Process Language)语法简洁、支持有序计算和分组子集保留,具备强大的交互性和调试功能,适合处理复杂的深度数据分析任务。SPL 已开源免费,是数据分析师的更好选择。
|
SQL Oracle 关系型数据库
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
272 3
|
8月前
|
存储 关系型数据库 测试技术
拯救海量数据:PostgreSQL分区表性能优化实战手册(附压测对比)
本文深入解析PostgreSQL分区表的核心原理与优化策略,涵盖性能痛点、实战案例及压测对比。首先阐述分区表作为继承表+路由规则的逻辑封装,分析分区裁剪失效、全局索引膨胀和VACUUM堆积三大性能杀手,并通过电商订单表崩溃事件说明旧分区维护的重要性。接着提出四维设计法优化分区策略,包括时间范围分区黄金法则与自动化维护体系。同时对比局部索引与全局索引性能,展示后者在特定场景下的优势。进一步探讨并行查询优化、冷热数据分层存储及故障复盘,解决分区锁竞争问题。
1079 2
|
关系型数据库 分布式数据库 PolarDB
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
599 0
|
存储 缓存 关系型数据库

推荐镜像

更多