6.5.3 “_”通配符
“_”通配符的功能与“%”通配符基本相同,只是它只表示任意一个字符的匹配。当然,要表示两个字符的匹配,就需要使用两个“_”通配符,即写成“__”。
只有在用户确定所要查询的字符串的个数,只是不确定其中的一个或几个字符的确切值时,才能使用“_”通配符。
实例19 使用“_”通配符查询课程名有5个字且以“计算机”开始的课程
在COURSE表中查询所有以“计算机”开头且只有5个文字的所有课程的课程名(CNAME)、人数(SCOUNT)以及考试时间(CTEST)信息。实例代码:
SELECT CNAME, SCOUNT, CTEST |
运行结果如图6.21所示。
图6.21 课程名有5个字且以“计算机”开始的课程 |
与“%”通配符相似,“_”通配符可以用在字符串的任意位置。当然,如果用户只知道要查询的字符串个数,而不能确定其中任何一个字符时,也可以使用“_”通配符。
实例20 使用“_”通配符查询课程名为6个字的所有课程
在COURSE表中查询所有课程名为6个字的所有课程的课程名(CNAME)、人数(SCOUNT)以及考试时间(CTEST)信息。实例代码:
SELECT CNAME, SCOUNT, CTEST |
运行结果如图6.22所示。
图6.22 课程名为6个字的所有课程 |
此时发现,不仅包含课程名6个字的所有课程,而且课程名少于6个字的记录也被列入查询结果表中,这一点也是实际应用中经常被会忽略的问题。如查询字符串“计算机_”时,如果有条记录为“计算机”,则它也被认为是符合查询条件的。因此,上例正确的SQL代码如下。
SELECT CNAME, SCOUNT, CTEST |
运行结果如图6.23所示。
图6.23 课程名为六个字的所有课程 |