PostgreSQL Like PostgreSQL Not Condition PostgreSQL IN Condition PostgreSQL Like 在本节中,我们将了解用于使用模式匹配获取数据的PostgreSQL Like 条件的工作原理,使用百分比 (%)、下划线 (_) 通配符的 Like条件示例、Not Like 运算符、ILIKE 的工作operator,以及PostgreSQL Like Operator的扩展。 PostgreSQL Like 条件介绍 PostgreSQL Like 条件用于从定义的条件满足 LIKE 条件的表中获取数据。结果包含区分大小写并遵循指定模式的字符串。 换句话说,我们也可以说Like 条件用于执行模式匹配以识别确切的结果。 为了实现模式匹配,PostgreSQL提供了两种不同的通配符,如下所示: 百分比 (%) 通配符:匹配任何零个或多个字符的序列。 下划线 (_) 通配符:匹配任何单个字符。 PostgreSQL Like 条件语法 在 PostgreSQL 中,Like 条件可以与 SELECT、INSERT、UPDATE 和 DELETE 命令以及 WHERE 子句一起使用。 expression LIKE pattern [ ESCAPE 'escape_character' ] 在上述语法中,像条件时,如果该值相匹配的图案,则表达式将返回真。 或者 我们可以使用NOT 运算符语法来反对LIKE运算符,如下所示: expression NOT LIKE pattern[ ESCAPE 'escape_character' ] 在上面的语法中,当值不匹配时使用Not Like条件,然后模式并返回true。 在上述语法中,我们使用了以下参数: 参数 描述 Expression/ value 它用于定义列或字段。 Pattern 模式是一个字符表达式,其中包含模式匹配。 Escape_character Escape 字符是一个可选参数,它允许我们测试通配符的文字实例,例如 %(百分比)或 _(下划线)。 笔记: 如果我们不想指定escape_character,PostgreSQL 假定“\”是escape_character。 如果模式没有任何通配符,则 Like 运算符的行为类似于等号“=”运算符。 使用百分比 (%) 通配符的 PostgreSQL Like Condition 示例 让我们看一个例子来理解PostgreSQL Like 条件是如何工作的: 假设我们想识别一个员工,但我们没有准确记住他/她的名字。但是我们知道他/她的名字以kat 之类的东西开头。 现在问题来了,我们如何从数据库中识别特定员工? 所以,我们可以识别员工在员工通过在看到表emp_fname列,检查是否有任何价值,与开始吉。 如果Employee表有很多行,我们按照上面的过程,可能需要更多的时间。 因此,在下面的示例中,我们使用PostgreSQL Like 条件将员工的初始姓名与字符串匹配,如下面的命令所示: 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 运算符示例:模式匹配 让我们看一些使用 LIKE 操作符进行模式匹配的例子: 'abc' LIKE 'abc' True 它将返回真,因为abc模式没有任何通配符;因此LIKE 运算符的作用类似于等号 (=)运算符。 'abc' LIKE 'a_' False 此表达式将返回false,因为模式 (a_)匹配任何以字母 a开头且后跟任何单个字符的字符串。 'abc' LIKE 'b' True 当模式 (b)匹配任何以任何单个字符开头、后跟字母 b 并以任何单个字符结尾的字符串时,它将返回true。 'abc' LIKE 'a%' True 此表达式将返回true,因为它匹配任何以字母a开头并后跟任意数量字符的字符串。 注意:在 PostgreSQL 中,我们可以在模式的开头和结尾使用通配符。 在下面的示例中,特定命令将返回emp_fname包含“in”字符串的员工,例如 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运算符的帮助下显示下划线 (_) 通配符的工作。 在下面的例子中,我们将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在erine 和 K在rina。 笔记: 要匹配字符串中任意位置的字符或序列,模式必须以百分比 (%)符号开始和结束,因为Like 模式匹配始终包含整个字符串。 的搜索条件可以具有数字或文字字符:其中百分比(%)符号相匹配的零个或多个字符的任何序列。 的下划线符号(_)在图案用于匹配任何单个字符。 PostgreSQL Not Like Condition 示例 我们还可以将 NOT 运算符与PostgreSQL LIKE条件一起使用。以下示例显示了Not Like Operator用于标识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,等等。如果我们使用LIKE 运算符代替ILIKE 运算符,该命令将返回一个空结果。 PostgreSQL 还支持其他一些运算符,它们的作用类似于LIKE、ILIKE、NOT LIKE 和 NOT ILIKE运算符,如下表所示: 其他运营商 等于 ~~ 喜欢 !~~ 不喜欢 ~~* 我喜欢 !~~* 不喜欢 概述 在 PostgreSQL Like Condition 部分,我们学习了以下主题: 我们使用带有百分比 (%) 和下划线 (_) 通配符的PostgreSQL Like 条件。 我们使用Not Like 运算符从特定表中获取记录。 我们将百分比 (%) 和下划线 (_) 通配符一起用于匹配模式。 我们学习了ILIKE运算符,它用于使用模式匹配来获取数据。 我们了解了PostgreSQL Like Operator的扩展。 PostgreSQL Not Condition PostgreSQL IN Condition