SQL杂俎_陪老婆一起学SQL系列_Chapter 04_查询基础3

一、WHERE语句简单筛选

截至到目前,已经出现过的查询语句示例中,我们都是对整张student表中的某一列或者某几列做完整的查询,

但实际上在业务处理过程中,往往需要添加一些限制条件来缩小范围,获取我们想要的查询结果。

比如:只筛选查询“二班”的学生信息、“得分在60以上的学生记录”......

语法:

SELECT  <列名1>,<列名2>,...

FROM  <表名>

WHERE  <条件表达式>;

示例1:

--查询所有性别为F的学生记录
SELECT * 
FROM student
WHERE sex = 'F'

运行结果:

示例1中,WHERE  sex = ‘F’  就是用来筛选查询结果的 条件表达式

Tips:表达式中的字符串需要用 单引号(‘ ’)括起来x

在查询的的过程中,会逐行将行中的sex的值与‘F’进行比较,满足限制条件“=”(等于)时,
这一行记录会被筛选出来

示例1中使用了(*)星号查询,所以筛选出sex=‘F’行的记录后,会返回所有列。


示例2:

--仅查询所有性别为F的学生班级、姓名、性别
SELECT 
    class_no AS "班级",
    name  AS "姓名",
    sex  AS "性别"
FROM student
WHERE sex = 'F'

运行结果:

 相较于示例1,示例2的语句仅查出了所有性别为‘F’的学生的 班级、姓名、性别

可以想象一下这个语句的处理过程,如下图

首先①步骤 通过语句 WHERE  sex = ‘F’  筛选出符合条件的行(红色框选)

接着②步骤 语句 SELECT 指定了针对符合要求的行中需要提取的列(蓝色框选)

Tips:

# 筛选条件不是必须作为查询列,你可以尝试一下示例2中,查询性别列注释掉试试看,你能成功执行么?

执行结果有什么不同?如果不能执行的话,你找到原因在哪了么???

SQL中语句的顺序是固定的,不按照规定顺序会执行错误

示例3:

--仅查询所有性别为F的学生班级、姓名、性别
--尝试将WHERE语句放在FROM语句前
SELECT 
    class_no AS "班级",
    name  AS "姓名",
    sex  AS "性别"
WHERE sex = 'F'
FROM student

运行结果:

 Tips:WHERE语句需要放在FROM语句之后

原文地址:https://www.cnblogs.com/MyDoldrums/p/14105939.html