6.5 使用LIKE进行模糊查询
当只知道部分字符串时,可使用LIKE运算符来查询数据库,找出与其相关的整个字符串。因此,当把关键字LIKE用在WHERE子句中时,可以比较两个字符串的部分匹配。当对字符串内容有些印象,但并不知道准确形式的时候,就可以使用LIKE运算符和相关的通配符进行部分匹配的查询。
6.5.1 LIKE运算符
前面提到的查询实际上都是精确查询,即对查询的字段的值有准确的描述。但在实际应用中往往经常要用到模糊查询,根据某一关键词搜索相关信息。在SQL语言中是通过通配符来实现的。SQL语言提供的通配符有“%”、“-”和“[]”,还包括前面介绍的“*”。
要在查询语句中使用通配符,必须使用LIKE运算符。要使用一个或多个通配符在LIKE查询中搜索字符串,只要将字符串与通配符组合起来即可。在数据库管理系统中,LIKE运算符与通配符组合使用提供了模糊查询功能。
说明 只有CHAR、VARCHAR和TEXT类型的数据才能使用LIKE运算符和通配符。
也可以不使用通配符,只使用LIKE运算符。如下面的实例。
实例13 使用LIKE运算符实现查询
使用LIKE运算符,从TEACHER表中查询所有计算机系教师的姓名(TNAME)、系(DNAME)、年龄(AGE)、性别(TSEX)信息。实例代码:
SELECT TNAME, DNAME,AGE, TSEX |
运行结果如图6.14所示。
图6.14 计算机系中的教师 |
在该实例中,LIKE运算符可用相等(=)运算符来替代。另外,LIKE运算符也可以与NOT运算符组合使用,如下面的实例。
实例14 使用NOT LIKE运算符实现查询
使用NOT LIKE运算符,从TEACHER表中查询所有不在计算机系教师的姓名(TNAME)、系(DNAME)、年龄(AGE)、性别(TSEX)信息。实例代码:
SELECT TNAME, DNAME,AGE, TSEX |
运行结果如图6.15所示。
图6.15 非计算机系中的教师 |
此时,NOT LIKE运算符可用不等于(<>)运算符来替代。