zoukankan      html  css  js  c++  java
  • MYSQL语法篇之"WHERE"子句

    MYSQL语法篇之"WHERE"子句

    本章来介绍MYSQL里面查询功能强大的WHERE子句。

    1. WHERE子句的特点

    2. WHERE子句的注意事项

    3. WHERE子句的使用


    1. WHERE子句的特点:

    过滤记录

    其实这一句话的解释有两个方面:

    (1)过滤记录=看不到不想看的数据

    (2)过滤记录=看到想看的数据

    表面上看这两句话是一个意思,但是这里面却包含了WHERE子句的语法理解:

    举例:

    select * from table_name where column_name=value;

    这一个语句中你会发现where子句后面跟着的内容是column_name=value,那么查询出来的是column=value的所有信息。where子句的官方定义是过滤记录,但是我们在使用where子句的时候输入的内容确是想查询的记录。 这就是where记录的两个方面的理解的不同。

    1. WHERE子句的注意事项:

    这是一个关键点,是WHERE子句学习的关键地方。

    where子句当中只能加入字段名和运算符,不能加入聚合函数。如果想加入聚合函数,需要使用到子查询的只是

    上面这两段话重点要去理解这么一些知识点:

    (1)字段名

    (2)运算符

    (3)聚合函数

    (聚合函数在SQL语句当中是一个高级的知识,我会放在后面的笔记当中进行详细的说明与总结,把常用的一些聚合函数挑出来细说。)

    在前面的总结当中已经给大家说了什么是字段名,如果有小伙伴还不清楚的话可以去查看前面的随笔。后面我们重点去了解什么是运算符。

    1. 什么是运算符?

    运算符其实就是我们小学数学当中认识的一些简单的符号。用来判断数据的,计算机也能通过运算符来过滤数据。

    常见的运算符:

    1、等于:=

    2、不等于:<> 或者 !=

    3、大于:>

    4、小于:<

    5、小于等于:<=

    6、大于等于:>=

    上面六种就是数据库当中查询表里内容时常用的六种运算符,每一种运算符在数据库当中可以组合使用,但是要注意:

    数据库当中组合使用运算符的时候不能与子查询组合使用

    什么意思呢?举一个实例:

    题:查询所有学生分数>60的学生人数。

    分析题目:

    主语:人数---查询人数。

    条件:分数大于60。

    写出语句:

    select count(*) from table_name where 分数>60;

    这里要注意的是,我上面写的加粗的话:

    错误的语法是:

    select count(*) from table_name where 分数>分数=(select 分数 form table_name where 分数=60);

    这一句用了子查询,但是因为存在运算符>和=号所以计算机在查询时候会先执行where子句当中的子查询得出结果再在where子句里面从左到右运行得出结果作为外循环select的过滤条件。

    所以这句语句得不出结果。

    思考:那么为什么说运算符可以组合使用?

    事实上只要不加入子查询,运算符基本上就可以组合使用。

    如:从学生表中查询所有学生的信息并使他们的成绩加五分

    语法:

    select *,score=score+5 from student;

    select * from student where score=score+5;

    上面两个语句的语法都是正确的,但是得到的结果不正确。

    第一种语法,会出现四个字段名,score+5会作为一个新的字段名出现在结果表中,score+5的结果为原表中的score的值+5。

    第二种语法,出现的结果是Empty,where子句后面的内容会被作为条件再在表中查询出满足条件的信息。(这里值得注意的是:score=score+5是已经被执行出结果以后的过滤条件。如果语句无法执行会报错)

  • 相关阅读:
    js中的原生Ajax和JQuery中的Ajax
    this的用法
    static的特性
    时政20180807
    java compiler没有1.8怎么办
    Description Resource Path Location Type Java compiler level does not match the version of the installed Java project facet Unknown Faceted Project Problem (Java Version Mismatch)
    分词器
    [数算]有一个工程甲、乙、丙单独做,分别要48天、72天、96天完成
    一点感想
    解析Excel文件 Apache POI框架使用
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14015016.html
Copyright © 2011-2022 走看看