SQL (五)用通配符过滤(LIKE操作符)

在这里插入图片描述

通配符wildcard

在这里插入图片描述

  • 是SQL语句的where子句的特殊字符。
  • 要在搜索子句中用通配符,就必须使用like操作符。。牛逼。因为like可以告诉DBMS,后面的搜索模式要用通配符匹配,而不是相等匹配。
  • 操作符作为谓词时,就不再是操作符。还不懂,后面说。
  • 通配符只可以用于文本,不可以用于数值

%通配符(最常用)

在这里插入图片描述
在这里插入图片描述

示例1

select prod_id, prod_name
from products
where prod_name like 'Fish%';

在这里插入图片描述
在这里插入图片描述

而且用小写'fish%'也搜度成功了,说明mysql不区分大小写,但是别的DBMS也许需要区分哦,根据实现而异

示例2:多次使用通配符

在这里插入图片描述

select prod_id, prod_name
from products
where prod_name like '%bean bag%';

在这里插入图片描述
在这里插入图片描述

示例3:通配符出现在搜索模式中间(不太常用,但是找电子邮件地址很有用)

select prod_id, prod_name
from products
where prod_name like 'F%y';

在这里插入图片描述
在这里插入图片描述
上图最后一段说的问题在这里没有出现,成功匹配到了fish bean bag toy。可能还是和实现有关,也许mysql自己先去掉了末尾的空格再匹配的。

示例4

在这里插入图片描述

select prod_id, prod_name
from products
where prod_name like '%';

在这里插入图片描述
而是匹配出来所有的产品了。注意最后一行的那个null是本身显示原因,表示是表的末尾,并不是有一行数据且数据的值为null

_通配符(下划线,只匹配单个字符)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

示例1

用了两个通配符_哈

不加空格

select prod_id, prod_name
from products
where prod_name like '__inch teddy bear';

在这里插入图片描述

加空格

select prod_id, prod_name
from products
where prod_name like '__ inch teddy bear';

在这里插入图片描述

[]通配符(方括号)

在这里插入图片描述
搞了半天,原来mysql根本不支持这种集合形式,即下面的代码不报错,但是得不到结果

select cust_contact
from Customers
where cust_contact like '[JM]%'
order by cust_contact;

那就不能练习相关示例了

通配符的使用技巧

在这里插入图片描述

  • 能不用尽量不用,因为慢
  • 用的话,不要把通配符放在搜素模式的起始处,这是最慢的
  • 总之,使用通配符应该细心,且不能过度使用。但它真的极其有用
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值