SQL Where
1. 定义
维基百科:Where
指令用于筛选出满足条件的结果集。@H__8@
编程之家解释:数据表中的数据往往比较繁杂,在的时候需要按照一定的条件进行筛选,Where 可以有效地剔除无用数据,保留被需要的数据。@H__8@
2. 前言
本小节,我们将一起学习 Where
。@H__8@
Where 可以搭配很多 指令使用,因此它的知识点是比较多的,本节我们主要介绍 Where 与 Select 是如何搭配使用的。
本节的主要知识点有:1.运算符;2.单条件;3.连接符;4.多条件。@H__8@
本小节测试数据如下,请先在中执行:@H__8@
DROP TABLE IF EXISTS imooc_user;CREATE TABLE imooc_user( username varchar(), age int);INSERT INTO imooc_user(username,age) VALUES('pedro', ), ('mike', ), ('jerry', ), ('Mary', );
3. 运算符
使用Where时,后面需搭配条件子句,条件字句由条件字段、运算符和条件值三部分组成,它们的关系如下:@H__8@
[col] [condition] [val]
其中col
表示数据表中的字段,condition
是运算符,val
是条件值。@H__8@
例如:age > 18
就是基本的条件子句,age是条件字段,> 是运算符,而 18 就是条件值,该条件语句表示选取
年龄大于 18 的。@H__8@
上面的例子中使用到了运算符 >,> 是一种常见的单值比较运算符,类似的还有:@H__8@
运算符的多样性导致了条件子句的多样性。@H__8@
不同的条件字段搭配不同的运算符,让 Where 的条件过滤变得更为强大。@H__8@
4. 单条件
Where 后面仅有条件子句的称为单条件。@H__8@
使用语法如下:@H__8@
SELECT [col1],[col2] from [table_name] WHERE [col3] [condition] [val];
其中col
是字段,table_name
是数据表,condition
是运算符,val
是值,数字1、2表示多个字段。@H__8@
请书写 语句,imooc_user
表中年龄超过25
的,并返回。@H__8@
分析:@H__8@
由题干可知,age 是条件字段,25 是条件值,需筛选出年龄超过25的,所以运算符选择 >。@H__8@
语句:@H__8@
整理可得语句如下:@H__8@
SELECT username from imooc_user WHERE age > ;
结果如下:@H__8@
+----------+ | username | +----------+ | jerry | | Mary | +----------+
请书写 语句,imooc_user
表中年龄等于18
的。@H__8@
分析:@H__8@
与上述分析大致相同,但是筛选条件变成了等于,因此运算符选择 =。@H__8@
语句:@H__8@
SELECT username from imooc_user WHERE age = ;
结果如下:@H__8@
+----------+ | username | +----------+ | mike | +----------+
5. 连接符
Where 后面的条件子句不仅可以为单条件子句,还可以是多条件子句。@H__8@
多条件子句需要通过AND
或者OR
两个连接符进行连接。@H__8@
这两个的运算符的作用如下:@H__8@
AND 和 OR 两个连接符让多条件变得更加灵活,从而让 Where 也变得更加灵活。@H__8@
6. 多条件
Where 后面有多个条件子句的称为多条件。@H__8@
请书写 语句,imooc_user
表中年龄大于等于18
但小于25
的。@H__8@
分析:@H__8@
条件字段仍是 age,但筛选条件从变成了两个,第条件,age 要大于等于 18,第二个条件,age 要小于 25。@H__8@
两个条件之间使用 AND 连接。@H__8@
语句:@H__8@
整理语句如下:@H__8@
SELECT username from imooc_userWHERE age >= AND age < ;
结果如下:@H__8@
+----------+ | username | +----------+ | pedro | | mike | +----------+
请书写 语句,imooc_user
表中年龄小于20
或者年龄大于25
的。@H__8@
分析:@H__8@
条件字段仍是 age,但筛选条件从变成了两个,且二者的关系发生了变化,第条件,age 要小于 20,第二个条件,age 要大于 25。@H__8@
两个条件之间使用 OR 连接。@H__8@
语句:@H__8@
整理语句如下:@H__8@
SELECT username from imooc_userWHERE age < OR age > ;
结果如下:@H__8@
+----------+ | username | +----------+ | mike | | jerry | | Mary | +----------+
多条件的还可以更加灵活,上述的例子都只涉及到单条件字段的,有时候需要从多个字段进行结果筛选。@H__8@
请书写 语句,imooc_user
表中年龄在25
到30
之间(包含25和30),并且为jerry
的。@H__8@
分析:@H__8@
条件字段变成了两个——username 和 age,username 只有条件,等于jerry,即 =jerry,age 有两个条件,既要大于等于25,
还要小于等于30,即 >=25,<=30。@H__8@
三个条件之间均用 AND连接。@H__8@
语句:@H__8@
整理语句如下:@H__8@
SELECT username from imooc_userWHERE username = 'jerry'AND age >= AND age <= ;
结果如下:@H__8@
+----------+ | username | +----------+ | jerry | +----------+
注意: 中字符串用单引号,即''
。@H__8@
7. 小结
Where 是使用最为频繁的指令之一,它的极其重要,绝大多数情况下,数据都需要过滤条件,请务必熟练掌握它。@H__8@
AND 和 OR 的搭配非常灵活,可以说是两两搭配无穷尽也。@H__8@