《MySQL必知必会》学习笔记——第6章 过滤数据

第6章 过滤数据

使用SLECET语句的WHERE子句指定搜索条件

使用WHERE子句

例子:

SELECT prod_name, prod_price
FROM products
WHERE prod_price = 2.50;

WHERE子句的位置:在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后。

WHERE子句操作符

WHERE除了相等测试,还支持其他条件操作符。

操作符说明
=等于
<>不等于
!=不等于
<小于
<小于等于
>大于
>=大于等于
BETWEEN在指定的两个值之间

注意:BETWEEN操作符指定的两个值必须用AND关键字分隔,且包括指定的开始值和结束值。

空值检查

在创建表时,表设计人员可以指定其中的列是否可以不包含值。在一个列不包含值时,称其为包含空值NULL。

NULL,它与字段包含0、空字符串或者仅仅包含空格不同。

SELECT语句有一个特殊的WHERE子句,用来检测具有NULL值的列,这就是IS NULL子句。

SELECT prod_name
FROM products
WHERE prod_price IS NULL;

在通过过滤选择不具有特定值的行时,我们有时可能希望返回包含NULL值的行。但是,不行。因为未知具有特殊的含义,数据库不知道它们是否匹配,所以在匹配过滤或不匹配过滤时不返回它们。

更强大的搜索条件

AND和OR操作符

MySQL允许通过AND和OR操作符,组合多条WHERE子句,以获得更强大的数据过滤条件。

SELECT prod_id, prod_price, prod_name
FROM products
WHERE vend_id = 1003 AND prod_price <= 10;
SELECT prod_id, prod_price, prod_name
FROM products
WHERE vend_id = 1002 AND vend_id = 1003;
  • AND操作符指示DBMS只返回满足所有给定条件的行
  • OR操作符指示DBMS匹配任一条件而不是同时匹配两个条件
  • 当同时包含AND操作符和OR操作符的时候,AND操作符优先级更高。此外,使用圆括号可以改变运算优先级

IN操作符

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

SELECT prod_name, prod_price
FROM produdts
WHERE vend_id IN (1002,1003)
ORDER BY prod_name;

此SELECT语句检索供应商1002和1003制造的所有产品。

IN操作符完成与OR相同的功能,但IN操作符一般比OR操作符执行更快。

NOT操作符

NOT操作符代表着取反,即否定它之后的所有条件。

MySQL支持使用NOT对IN、BETWEEN和

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值