zoukankan      html  css  js  c++  java
  • 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语句之后

  • 相关阅读:
    URAL 2067 Friends and Berries (推理,数学)
    URAL 2070 Interesting Numbers (找规律)
    URAL 2073 Log Files (模拟)
    URAL 2069 Hard Rock (最短路)
    URAL 2068 Game of Nuts (博弈)
    URAL 2066 Simple Expression (水题,暴力)
    URAL 2065 Different Sums (找规律)
    UVa 1640 The Counting Problem (数学,区间计数)
    UVa 1630 Folding (区间DP)
    UVa 1629 Cake slicing (记忆化搜索)
  • 原文地址:https://www.cnblogs.com/MyDoldrums/p/14105939.html
Copyright © 2011-2022 走看看