PostgreSQL教程

PostgreSQL Like

在本节中,我们将了解 PostgreSQL Like条件的工作原理,该条件用于通过模式匹配获取数据, <使用百分比(%),下划线(_)通配符,not like运算符,ilike运算符的工作和postgresql like的扩展 strong> 运算符。

PostgreSQL类条件简介

PostgreSQL类条件用于从已定义条件满足LIKE条件的表中获取数据。结果包含区分大小写并遵循指定模式的字符串。
换句话说,我们也可以说 Like条件为
为了实现模式匹配的目的,我们使用了 PostgreSQL 提供了两个不同的通配符,如下所示:
百分号(%)通配符: 匹配零个或多个字符的任何序列。 下划线(_)通配符: : 匹配任何单个字符。

PostgreSQL Like条件语法

在PostgreSQL中,Like条件可以与SELECT,INSERT,UPDATE和DELETE命令以及WHERE子句一起使用。
expression LIKE pattern [ ESCAPE 'escape_character' ]  
在以上语法中,使用了类似条件,如果值匹配 模式,则表达式将返回 true 。
我们可以使用 NOT运算符 的语法与 LIKE 运算符相对,如下所示:
expression NOT LIKE pattern[ ESCAPE 'escape_character' ]  
在上述语法中,当值不匹配时使用不LIKE条件,然后使用模式并返回 true 。
在上述语法中,我们使用了以下参数:
参数 说明
Expression/ value 它用于定义列或字段。
Pattern Pattern是一个字符表达式,其中包含模式匹配。
Escape_character 转义字符是一个可选参数,它使我们能够测试通配符的文字实例,例如%(百分比)或_(下划线)。
注意:
如果我们不想指定escape_character,则PostgreSQL假定" \"是escape_character。 如果模式没有任何通配符,则Like运算符的行为类似于" ="运算符。

使用百分比(%)通配符的PostgreSQL Like条件示例

让我们看一个示例来了解 PostgreSQL Like条件的工作方式:
假设我们想识别一名雇员,但我们没有准确记住他/她的名字。但是我们知道他/她的名字以 kat 之类的名字开头。
现在出现了问题,如何从数据库中识别特定雇员?
因此,我们可以通过查看 emp_fname 列中的 employee 表中的 employee 来检查是否有任何以 kat 。
如果 Employee 表中有很多行,并且我们遵循上述过程,则可能需要更多时间。
因此,在下面的示例中,我们使用类似于PostgreSQL的条件,将员工的名字与字符串匹配,如以下命令所示:
SELECT emp_fname, emp_lname
FROM employee
WHERE emp_fname LIKE 'Kat%';
输出
执行上述命令后,我们将得到以下结果:
PostgreSQL Like
上面的语句返回的行,其 emp_fname 列中的值以 Kat 开头,并且可以跟在字符,称为模式匹配技术。
注意1:
我们可以通过将文字值与通配符相连来定义模式。 要确定匹配项,我们可以使用 LIKE或NOT LIKE 运算符。 WHERE子句可以具有不同的表达式: emp_fname ,其中 LIKE运算符和字符串具有百分号(%) 。 'Kat%'字符串被称为模式。

PostgreSQL样例运算符: 模式匹配

让我们来看一些使用LIKE运算符的模式匹配示例:
'abc' LIKE 'abc' True 它将返回 true ,因为 abc 模式没有任何通配符;因此 LIKE运算符的表现类似于等于(=)运算符。
'abc' LIKE 'a_' false 此表达式将返回 false ,因为模式(a _)与以字母a 开头的任何字符串匹配,后跟任何单个字符。
'abc' LIKE '_b_' True 它将返回 true ,因为模式(_b _)与任何字符串匹配,该字符串以任何单个字符开头,后跟字母b并以任何单个字符结尾。
'abc' LIKE 'a%' True 此表达式将返回 true ,因为它与任何字符串匹配,该字符串以字母 a 开头,后跟任意数量的字符。
注意: 在PostgreSQL中,我们可以在模式的开头和结尾使用通配符。
在下面的示例中,特定命令将返回其 emp_fname 包含" in" 的 employees 字符串,例如Kather in e,Katr in a,Kar in a等。
SELECT emp_fname, emp_lname
FROM employee
WHERE emp_fname LIKE '%in%'
ORDER BY emp_fname;
输出
执行上述命令后,我们将获得以下输出:
PostgreSQL Like

使用Like运算符的下划线(_)通配符示例

此处,我们使用的是上述 Employee 表,以在 Like 运算符的帮助下显示下划线(_)通配符的工作。
在下面的示例中,我们将< employee 表中的strong> emp_fname,emp_lname和位置,并使用 emp_lname 中的下划线通配符以任何字符开头,然后是" mith" :
SELECT emp_fname, emp_lname, location
FROM employee
WHERE emp_lname LIKE '_mith';
输出
执行上述命令后,我们将得到以下结果:
PostgreSQL Like
现在,如果我们想将下划线(_)和百分比(%)通配符结合在一起以创建模式,如我们在以下命令:
SELECT emp_fname, emp_lname
FROM employee
WHERE emp_fname LIKE '_at%'
ORDER BY emp_fname;
输出
在执行上述命令时,我们将得到以下结果:
PostgreSQL Like
上述模式 _at%匹配应以任何单个字符(_)开始的字符串,应该在字符串 at 之后,该字符串应以任意数量的字符结尾。它将返回 emp_fname 作为 上的K 和作为 rina上的K 。
注意:
要匹配字符串中任意位置的字符或序列,模式必须以百分比(%)符号开头和结尾类似模式匹配始终包含整个字符串。 搜索条件可以包含数字或文字字符: 其中百分号(%)匹配零个或多个字符的任何顺序 >。 模式中的下划线(_)用于匹配任何单个字符。

PostgreSQL条件不一样的示例

我们也可以在 PostgreSQL LIKE 条件下使用NOT运算符。以下示例显示不像操作员的用法来标识其 emp_fname 以 Kat 开头的雇员:
SELECT emp_fname, emp_lname
FROM employee
WHERE emp_fname NOT LIKE 'Kat%';
输出
执行上述语句后,我们将得到以下结果:
PostgreSQL Like

PostgreSQL LIKE运算符的扩展

在PostgreSQL中,我们还有 ILIKE 运算符与类似LIKE运算符。
换句话说,我们可以说 ILIKE 运算符等于不区分大小写的值。
在以下示例中,我们将在员工表中使用 ILIKE 运算符:
SELECT emp_fname, emp_lname
FROM employee
WHERE emp_fname ILIKE 'ka%';
输出
在执行上述命令时,我们将看到以下结果:
PostgreSQL Like
ka%模式与以 Ka,kA,ka,KA,等开头的任何字符串匹配。如果我们使用 LIKE运算符代替 ILIKE运算符,该命令将返回空结果。
PostgreSQL还支持其他一些运算符,这就像 LIKE,ILIKE,NOT LIKE和NOT ILIKE 运算符一样,如下表所示:
其他运营商 等于
~~ Like
!~~ Not Like
~~ * ILIKE
!~~ * Not ILIKE

概述

在PostgreSQL的"条件"部分,我们学习了以下主题:
我们使用了类似于PostgreSQL的条件和百分比(%)和下划线(_)通配符。 我们使用了 Not Like运算符从特定表中获取记录。 我们将百分比(%)和下划线(_)通配符一起用于匹配模式。 我们了解了 ILIKE 运算符,该运算符用于通过模式匹配来获取数据。 我们了解PostgreSQL Like Operator的扩展名。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4