暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL基础知识——过滤数据

SQL数据库开发 2020-09-17
960

点击上方SQL数据库开发,关注获取SQL视频教程

SQL专栏

SQL基础知识汇总

SQL高级知识汇总

MySQL的数据过滤主要使用WHERE子句来实现。

WHERE的作用

数据库通常会存储大量的数据,但是我们一般很少需要查询出所有数据。会根据需求筛选过滤出我们需要的数据,WHERE就是用来筛选我们需要的数据。

WHERE语法

SELECT column1, column2,...columnN  

FROM table_name1, table_name2... 

[WHERE condition1 [AND [OR]] condition2.....]

示例数据

我们以customers表中的数据来演示WHERE子句的用法。

表customers

简单示例

例如我们只想看看城市为广州的客户信息,就可以使用WHERE来筛选。

SELECT * FROM customersWHERE `城市`='广州'

结果为:

WHERE子句操作符

上述的简单示例我们使用了操作符等号(=),此外WHERE后面还可以使用一下操作符:

操作符说明
=等于
<>   或   !=不等于
<小于
<=小于等于
>大于
>=大于等于
BETWEEN 介于两个值之间
LIKE模糊匹配
IN指定针对某个列的多个可能值
EXISTS在子查询中匹配到符合条件的数据行

多条件过滤

上面的简单示例我们只使用了一个城市过滤条件,下面我们再添加一个姓名为王五的过滤条件,可以这样写

SELECT * FROM customersWHERE `城市`='广州'AND `姓名`='王五'

结果为:

通过使用AND来连接两个条件,表示要同时满足这两个条件的数据行才会被显示出来。可以继续使用AND来添加更多的条件,当没有数据行能够同时满足所有条件时,这时候就没有数据行被显示了。例如,我们再加一个省份是浙江省的条件:

SELECT * FROM customersWHERE `城市`='广州'AND `姓名`='王五'AND `省份`='浙江省'

结果为:

不匹配过滤

等号表示匹配,那么不等号就是不匹配,当我们希望显示的数据是排除掉某些数据行的时候,可以使用不等号(<>或!=),例如我想查询广东省以外的客户信息,可以这样写:

SELECT * FROM customersWHERE `省份`<>'广东省'

结果为:

范围值过滤

要过滤某个区间的数据可以使用BETWEEN,例如我们想查找客户ID在3到6之间的数据行,可以这样写

SELECT * FROM customersWHERE `客户ID` BETWEEN 3 AND 6

结果为:

注意:这里的BETWEEN 是包含起始值3和终止值6的

引号的使用

请注意,我们在例子中的条件值周围使用的是单引号。

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。

例如:

文本

--这是正确的:SELECT * FROM Customers WHERE 城市='北京'--这是错误的:SELECT * FROM Customers WHERE 城市=北京

数值
--这是正确的:SELECT * FROM Customers WHERE 客户ID=5--这是错误的:SELECT * FROM Customers WHERE 客户ID='5'

此外WHERE后面还可以使用LIKE,IN,EXISTS和 IS [NOT] NULL等关键字,我们在后面会详细讲述他们的用法。

——End——

后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群。
推荐阅读
这是一个能学到技术的公众号,欢迎关注
点击「阅读原文」了解SQL训练营

文章转载自SQL数据库开发,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论