4.过滤数据 WHERE

过滤数据关键字:WHERE

WHERE的位置:FROM之后,ORDER BY 之前,很好理解。

例:

1.//返回prod_price值为2.50的行
SELECT prod_name,prod_price
FROM products
WHERE prod_price = 2.50;
2.///
SELECT prod_name,prod_price
FROM products
WHERE prod_name = 'fuses';
我们注意到两个WHERE子句条件,有一个加了引号,一个没有加,那么何时使用引号呢?

单引号用来限定字符串,如果将值与串类型的列进行比较,则需要用引号。若与数值列比较的值不用引号。

BETWEEN的例子

SELECT id
FROM bbs_sku
WHERE sku_price BETWEEN 100 AND 200;

空值检查:

SELECT prod_name
FROM products
WHERE prod_price IS NULL;

WHERE子句操作符列表如下:


AND 和 OR操作符

AND的优先级高于OR ,所以当两者混合时,优先执行AND操作符

例:检索由供应商1003制造的且价格小于等于10的所有产品的名称和价格

SELECT prod_id,prod_price,prod_name
FROM products
WHERE vend_id=1003 AND prod_price <=10;
AND用来指示检索满足所有给定条件的行。
OR 用来指示检索满足任一条件的行。

例:由任一个指定供应商制造的所有产品名和价格

SELECT prod_name,prod_price
FROM products
WHERE vend_id = 1002 OR vend_id = 1003;

1.4. AND和OR混合使用

优先级:圆括号()> AND > OR

例如:由供应商1002或1003制造的且价格在10元以上的产品

SELECT prod_name,prod_price
FROM products
WHERE (vend_id = 1002 OR vend_id = 1003) AND prod_price >= 10;
2. IN操作符

用法:用来指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值的由逗号分隔的清单,全都括在圆括号中。

SELECT prod_name,prod_price
FROM products
WHERE vend_id IN (1002,1003)
ORDER BY prod_name;
IN与OR功能相同。IN比OR效率更快。

3. NOT操作符

只有一个功能:否定它之后的所有条件

例 :列出除1002和1003之外的所有供应制造商的产品。

SELECT prod_name,prod_price
FROM products
WHERE vend_id NOT IN (1002,1003)
ORDER BY prod_name;
MySQL中的NOT可以与IN、BETWEEN 和 EXISTS使用,这与其他数据库不一样。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值