SQL专栏

​SQL基础知识汇总​

​SQL高级知识汇总​

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


WHERE的作用

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


WHERE语法

SELECT column1, column2,...columnN  

FROM table_name1, table_name2... 

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


示例数据

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

MySQL基础知识——过滤数据_数据

表customers


简单示例

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


SELECT * FROM customers
WHERE `城市`='广州'

结果为:

MySQL基础知识——过滤数据_操作符_02


WHERE子句操作符

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

操作符

说明

=

等于

<>   或   !=

不等于

<

小于

<=

小于等于

>

大于

>=

大于等于

BETWEEN 

介于两个值之间

LIKE

模糊匹配

IN

指定针对某个列的多个可能值

EXISTS

在子查询中匹配到符合条件的数据行


多条件过滤

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


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

结果为:

MySQL基础知识——过滤数据_操作符_03

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


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

结果为:

MySQL基础知识——过滤数据_sql_04


不匹配过滤

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


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


结果为:

MySQL基础知识——过滤数据_sql_05


范围值过滤

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


SELECT * FROM customers
WHERE `客户ID` BETWEEN 3 AND 6


结果为:

MySQL基础知识——过滤数据_操作符_06

注意:这里的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,获取一份精心整理的技术干货后台回复关键字:进群,带你进入高手如云的交流群。推荐阅读

这是一个能学到技术的公众号,欢迎关注

MySQL基础知识——过滤数据_操作符_07