模糊查询(Fuzzy Query)是指精确查询(Precise Query)无法满足要求时,可以用模糊查询来满足我们的要求。Oracle中支持五种模糊查询:%(全文搜索)、_(空格)、[ ](字符串搜索)、&(相似字符集)、|(字符截取)。
**1. %模糊查询:**
%模糊查询会匹配任意多个字符,即使是空格也匹配。例如:
sql> select * from student where name like '%tom%';
该语句会查找所有name以字符“tom”开头或者以字符“tom”结尾的字符串。
**2._模糊查询:**
_模糊查询可以匹配一个任意字符,但不会匹配空格,例如:
sql> select * from employee where emp_name like '_hong';
这条SQL语句会查找出emp_name以hong结尾且为两个字符的所有字符串。
**3.[ ]模糊查询:**
[ ]模糊查询是搜索某一组字符中的任意一个,例如:
sql> select * from student where name like '[st]am';
这条sql语句会查找出name后缀为am,且第三个字符为s或t的所有字符串。
**4.&模糊查询:**
&模糊查询用来查找相似的字符,可以用在http://www.oracle.com/technetwork/database/features/6-10-17298-1-82254-1-85288.htm数据库中,例如:
sql> select * from student where name like 'mich&e';
这条SQL语句会查找出name的最后一个字符为e时,其他字符可以为micha、miche或michi等相似字符串。
**5.|模糊查询:**
|模糊查询用于截取字符串,常用于字符串模糊查询,例如:
sql> select * from student where name like 'mi|h';
这条SQL语句会查找name以mi开头,后缀以h结尾的所有字符串。
总结:Oracle中的模糊查询技巧包括%模糊查询、_模糊查询、[ ]模糊查询、&模糊查询和|模糊查询等,与精确查询结合使用,可以更好地满足要求,提高查询效率。