模糊式查询——通配符

时间:2021-08-10 09:49:47

昨晚,开会的时候他们提到了通配符,我听得都迷糊了,所以只好回去找了一下相关的资料。

数据库查询有完整式查询和模糊式查询,模糊式查询的语句为:SELECT 字段 FROM 表 WHERE 某字段 Like 条件

其中SQL通配符用于“Like"表达式,匹配的类型有:

1."%  "通配符

 

表示0个或更多字符组成的任意字符串

例如,在“student”表中查询姓“李”的学生信息。

Use student
Select * from student where 姓名 like '李%'

查出来的结果就是姓李的全部学生

 

2."_"通配符

"_"号表示任意单个字符,该符号只能匹配一个字符,利用"_"号可以作为通配符组成匹配模式进行查询

例如,在“student”表中,查询姓“李的”并且名字只是两个字的同学信息

Use student 
Select * from student where 姓名 like '李_'

 

最后查出的结果是一个姓李单名的学生

另外,它可以放在查询条件的任意位置,且只能代表一个字符。例如:

 

Use Student
Select * from student where 姓名 like '李_明'

查询出来的就是,姓李的并且末尾是明的同学

 

3 ."[]"通配符

 

在模式查询中可以使用"[]"符号来查询一定范围内的数据。它用于表示一定范围内的任意单个字符,它包括两端数据。

在”student“表中,查询电话号码以”3451“结尾,并且开头数字位于15之间的学生信息。

Use student
Slelect * from student where 联系方式 like '[1-5]3451'

4."[^]" 通配符

在模式查询中可以使用"[^]"符号来查询不在指定范围内的数据。"[^]"符号用于表示不在某范围内的任意单个字符,它包括两端数据。

"student"表中,查询电话号码以“3451”结尾,但不以“2”开头的学生信息

Use student
Select * from student where 联系方式 like '[^2]3451'

另外,Microsoft Access中,通配符也可用于Like 表达式中,不同于SQL的是,它是以星号(*)匹配零个或多个字符,以问号(?)匹配单个字符。