提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言一、通配符 是什么?二、常用通配符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?';
#并不是所有数据库系统都支持
总结
需要注意的是,不同的数据库系统可能会有不同的通配符实现或扩展。在使用通配符时,要确保了解所使用的数据库系统的具体规则。
过度使用通配符会耗费较长处理时间,使用时建议缩小搜索的范围,同时注意通配符的位置。