您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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表中年龄在2530之间(包含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@


联系我
置顶