zoukankan      html  css  js  c++  java
  • 07 单表查询

    一、单表查询的语法
       SELECT 字段1,字段2... FROM 表名
                      WHERE 条件
                      GROUP BY field
                      HAVING 筛选
                      ORDER BY field
                      LIMIT 限制条数
    二、关键字的执行优先级(重点)

    重点中的重点:关键字的执行优先级
    from
    where
    group by
    having
    select
    distinct
    order by
    limit

    1.找到表:from

    2.拿着where指定的约束条件,去文件/表中取出一条条记录

    3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组

    4.将分组的结果进行having过滤

    5.执行select

    6.去重

    7.将结果按条件排序:order by

    8.限制结果的显示条数

    三、where约束
        where子句中可以使用
        1.比较运算符:>、<、>=、<=、<>、!=
        2.between 80 and 100 :值在80到100之间
        3.in(80,90,100)值是10或20或30
        4.like 'xiaomagepattern': pattern可以是%或者_。%小时任意多字符,_表示一个字符
        5.逻辑运算符:在多个条件直接可以使用逻辑运算符 and or not
    四、group by 分组

        一旦分组之后 只能查看分组的字段,如果想查看组内的信息,我们要通过聚合函数
            count()  总数量
            max()  求最大值
            min()  求最小值
            avg()  求平均值
            sum()  求和
            group_concat()  组内的信息根据逗号连接

    #1、首先明确一点:分组发生在where之后,即分组是基于where之后得到的记录而进行的

    #2、分组指的是:将所有记录按照某个相同字段进行归类,比如针对员工信息表的职位分组,或者按照性别进行分组等

    #3、为何要分组呢?
        取每个部门的最高工资
        取每个部门的员工数
        取男人数和女人数

    小窍门:‘每’这个字后面的字段,就是我们分组的依据

    #4、大前提:
        可以按照任意字段分组,但是分组完毕后,比如group by post,只能查看post字段,如果想查看组内信息,需要借助于聚合函数


    五、having过滤
    复制代码

    HAVING与WHERE不一样的地方在于

    #!!!执行优先级从高到低:where > group by > having
    #1. Where 发生在分组group by之前,因而Where中可以有任意字段,但是绝对不能使用聚合函数。

    #2. Having发生在分组group by之后,因而Having中可以使用分组的字段,无法直接取到其他字段,可以使用聚合函数

    六、order by 查询排序
    按单列排序
        SELECT * FROM employee ORDER BY age;
        SELECT * FROM employee ORDER BY age ASC;
        SELECT * FROM employee ORDER BY age DESC;
    按多列排序:先按照age升序排序,如果年纪相同,则按照id降序
        SELECT * from employee
            ORDER BY age ASC,
            id DESC;
    七、limit  限制查询的记录数:
    示例:
        SELECT * FROM employee ORDER BY salary DESC
         LIMIT 3;                    #默认初始位置为0

        SELECT * FROM employee ORDER BY salary DESC
            LIMIT 0,5; #从第0开始,即先查询出第一条,然后包含这一条在内往后查5条

        SELECT * FROM employee ORDER BY salary DESC
            LIMIT 5,5; #从第5开始,即先查询出第6条,然后包含这一条在内往后查5条


      参考地址:https://www.cnblogs.com/majj/p/9170351.html

  • 相关阅读:
    在线银联之实例操作
    html5介绍 之亮点特性
    html5介绍
    MVC 分页获取数据 及点选按钮
    用正则表达式抓取网页中的ul 和 li标签中最终的值!
    android 目录结构
    DataBinding 访问 3
    DataBinding初探 数据绑定的用法 ,import 集合类型,绑定的表达式,访问集合类型2
    MVVM技术
    全栈工程师,也叫全端工程师,英文FullStackdevelopver。是指掌握多种技能,并能利用多种技能独立完成产品的人。
  • 原文地址:https://www.cnblogs.com/mayugang/p/10222832.html
Copyright © 2011-2022 走看看