PostgreSQL Like
在本节中,我们将了解 PostgreSQL Like条件的工作原理,该条件用于通过模式匹配获取数据,
<使用百分比(%),下划线(_)通配符,not like运算符,ilike运算符的工作和postgresql like的扩展 strong>
运算符。
使用百分比(%),下划线(_)通配符,not>
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%';
输出
执行上述命令后,我们将得到以下结果:
上面的语句返回的行,其 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;
输出
执行上述命令后,我们将获得以下输出:
使用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';
输出
执行上述命令后,我们将得到以下结果:
现在,如果我们想将下划线(_)和百分比(%)通配符结合在一起以创建模式,如我们在以下命令:
SELECT emp_fname, emp_lname
FROM employee
WHERE emp_fname LIKE '_at%'
ORDER BY emp_fname;
输出
在执行上述命令时,我们将得到以下结果:
上述模式 _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中,我们还有 ILIKE 运算符与类似LIKE运算符。
换句话说,我们可以说 ILIKE 运算符等于不区分大小写的值。
在以下示例中,我们将在员工表中使用 ILIKE 运算符:
SELECT emp_fname, emp_lname
FROM employee
WHERE emp_fname ILIKE 'ka%';
输出
在执行上述命令时,我们将看到以下结果:
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的扩展名。