Mysql必知必会(笔记)【高级数据过滤、通配符进行过滤】

1. 高级数据过滤


概念:操作符(用来联结或者改变WHERE子句中子句的关键字,也成为逻辑操作符)

1)组合WHERE子句

为了满足更强的数据过滤,SQL允许给出多个WHERE子句。这些子句有两种使用方式即以AND子句或者OR子句的方式使用。

AND操作符

select 列名 from 表名 where 列名=值 and 列名=值(order by 列名【desc】));

OR操作符

select 列名 from 表名 where 列名=值 or 列名=值(order by 列名【desc】));

求值顺序

where子句可以包含任意数目的AND和OR操作符。允许两者结合以进行复杂、高级的过滤。
分析:

需要列出价格为10美元及以上,且由1001或者1003制造的所有产品:

select from products where vend_id = ‘1001’ or vend_id = ‘1003’ and prod_price >10;*

结果为:

这里写图片描述

可以看到结果中包含prod_price<10的子句。由与SQL在处理OR操作符前优先处理AND操作符。因此它理解为:由供应商1003制造的价格为10美元以上的所有产品,以及由供应商1001制造的所有产品,而不管其价格如何。

解决方法:可以使用()来对操作符进行明确分组。

select * from products where (vend_id = ‘1001’ or vend_id = ‘1003’) and prod_price >10;

IN操作符

select 列名 from 表名 where 列名 in (值1,值2)【order by 列名 【desc】】

IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配,IN取一组由逗号、在括号中的合法值。与OR可以完成相同的工作。

NOT操作符

select 列名 from 表名 where not 条件;

not从来不能单独使用,where子句中用来否定其后条件的关键字。

2. 用通配符进行过滤

通配符:用来匹配值的一部分特殊字符。
搜索模式:由字面值,通配符,或者两组合构成的搜索条件。
为了在搜索子句中使用通配符,必须使用LIKE操作符。LIKE高度DBMS,后跟的搜索模式是利用通配符匹配而不是简单的相等匹配进行比较。

%通配符(表示任何字符出现任意次数)

select 列名 from 表名 where 列名 like ‘开头字符%’;

注意:通配符看起来像是可以匹配任何东西,但有个例外,这就是NULL。子句WHERE prod_name like ‘%’ ,不会匹配产品名称为NULL的行。

_通配符(与%同理,但是只匹配单个字符)

[]通配符(待验证)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NobiGo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值