首页 文章详情

MySQL基础知识——过滤数据

SQL数据库开发 | 226 2020-09-16 20:35 0 0 0
UniSMS (合一短信)

点击上方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 customers
WHERE `城市`='广州'

结果为:


WHERE子句操作符

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

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


多条件过滤

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


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

结果为:

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


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

结果为:


不匹配过滤

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


SELECT * FROM customers
WHERE `省份`<>'广东省'


结果为:


范围值过滤

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


SELECT * FROM customers
WHERE `客户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训练营

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter