提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言一、通配符 是什么?二、常用通配符1.百分号(%)2.下划线(_)3.方括号([ ])4.脱字符([^])或 感叹号(![ ])5.星号(*)6.问号(?)

总结

前言

SQL基础知识之通配符

利用通配符,可以创建比较特定数据的搜索模式。

一、通配符 是什么?

通配符(wildcard):通配符是一种特殊字符或符号,用于在搜索、匹配和过滤数据时代表一个或多个未知字符。 常用于文本搜索、文件名匹配、数据库查询等情况,尤其是在需要模糊匹配而不是精确匹配的场景中。

二、常用通配符

1.百分号(%)

表示任意数量(包括零个)的任意字符。

SELECT * FROM map WHERE area_name LIKE '北京%';

可在搜索模式中的任意位置使用,并且可以使用多个通配符。

SELECT prod_id, prod_name FROM Products WHERE prod_name LIKE '%bean bag%';

2.下划线(_)

下划线的用途与%一样,但它只匹配单个字符,而不是多个字符。

SELECT * FROM table_name WHERE column_name LIKE 'ex_';

#匹配以"ex"开头且后面紧跟任意一个字符的记录。

3.方括号([ ])

指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符。

SELECT * FROM table_name WHERE column_name LIKE '[a-f]';

#匹配任意一个在a到f范围内的字母。

常与%结合,匹配第一个字符之后的任意数目的字符。

SELECT cust_contact FROM Customers WHERE cust_contact LIKE '[JM]%';

#匹配所有名字以J或M开头的联系人。

4.脱字符([^])或 感叹号(![ ])

表示不在括号内的任意一个字符。

SELECT cust_contact FROM Customers WHERE cust_contact LIKE '[^JM]%';

#匹配不以J或M起头的任意联系人名。

如果使用的是Microsoft Access,需要用!来否定。

SELECT cust_contact FROM Customers WHERE cust_contact LIKE '[!JM]%';

5.星号(*)

大多数操作系统中,* 用作多字符通配符,可以匹配任意数量的字符,与%类似。

SELECT * FROM map WHERE area_name LIKE '北京*';

#并不是所有数据库系统都支持

6.问号(?)

大多数操作系统中,? 匹配任意一个字符,与 _ 类似。

SELECT * FROM table_name WHERE column_name LIKE 'ex?';

#并不是所有数据库系统都支持

总结

需要注意的是,不同的数据库系统可能会有不同的通配符实现或扩展。在使用通配符时,要确保了解所使用的数据库系统的具体规则。

过度使用通配符会耗费较长处理时间,使用时建议缩小搜索的范围,同时注意通配符的位置。