• MySql数据库_05


    数据库基础_笔记05

    2019年12月17日 星期二 CQCET

    复杂数据查询

    - 聚合函数

    聚合函数包括
    SUM(),COUNT(),AVG(),MAX(),MIN()

    聚合函数语法:

    select 聚合函数(列名) from 表名 [where 条件];
    
    • sum函数
      用于计算合
    select sum(成绩) 某某班总成绩 from xs_kc;
    

    在这里插入图片描述

    • count函数
      count函数用于统计记录条数
    select count(学号) 参考人数 from xs_kc;
    

    在这里插入图片描述

    加上where条件查询

    select count(学号) 班级男生人数 from xsqk where 性别='男';
    

    在这里插入图片描述

    • AVG函数
      avg函数用于统计平均值
    select avg(成绩) from xs_kc where 学号=2016110101;
    

    在这里插入图片描述

    • MAX函数

    max函数用于查询最大值

    select max(成绩) from xs_kc;
    

    在这里插入图片描述

    • MIN函数

    min函数用于打印最小值

    select min(成绩) 最低成绩 from xs_kc;
    

    在这里插入图片描述

    - 分类汇总

    一个聚合函数只能汇总一条记录,分类汇总用于查询多条记录汇总查询。

    简单分类查询语法:

    select 列名 from 表名 where 条件 group by 列名1[...];
    

    简单的分类查询:

    select * from xs_kc group by 课程号;
    

    在这里插入图片描述

    ps:因为group by 在进行分类时会筛选重复数据。

    • 统计功能分类查询
    select 课程号, group_concat(学号) 学号 
    from xs_kc 
    group by 课程号;
    

    其中group_concat()函数可以显示每条分组中指定的字段值。
    在这里插入图片描述

    • 多字段分类查询

    语法:

    select 列名 from 表名 where 条件 group by 列名1...

    在这里插入图片描述

    select 学号,专业名,group_concat(姓名) 姓名,count(姓名) 人数 from xsqk group by 姓名,专业名;
    

    concat()函数记录条数
    在这里插入图片描述

    • HAVING子句分类查询
    select 课程号, avg(成绩) 平均成绩, group_concat(学号) 学号, count(学号) 人数 from xs_kc group by 课程号 having avg(成绩) >60;
    

    在这里插入图片描述

    简单理解having就是where,但是where后不能用聚合函所以采用having。

    • 多表查询

    在sql注入中会用到内联注入。
    内连查询
    内连就是将多个共享列值进行比较,把多个表中的满足条件的的连接记录横向连接。内连接分
    自连接
    等值连接
    非等值连接

    自连接:
    其中 from xsqk x,xsqk z 采用表的别名,就是把xsqk取别名为x,和z,连个表连接的语句是 where x .学号 z.学号
    因为是自连接,所以都是xsqk表本身,如果要从另外的表连接,需要一个为主表,一个为从表。

    在这里插入图片描述

    • 等值连接

    等职连接就是在where后添加=来使两个表中相同字段的值作为连接。

    在这里插入图片描述

    • 外连查询

    通过内连的结果是相关表中的
    外连查询会返回操作表中至少一个表的所有记录
    外连分
    左外连接和右外连接(我觉得都一样)

    select xsqk.学号,姓名,课程号,成绩 from xsqk left outer join xs_kc on xsqk.学号=xs_kc.学号;
    

    左外连接

    在这里插入图片描述

    右外连接

    select xsqk.学号,姓名,课程号,成绩 from xsqk right outer join xs_kc on xsqk.学号=xs_kc.学号 ;
    

    在这里插入图片描述

  • 相关阅读:
    Cocos2d-x 3.0 beta 中加入附加项目,解决无法打开包括文件:“extensions/ExtensionMacros.h”: No such file or directory”
    C、Shell、Perl基于Tomcat开发CGI程序环境配置
    Windows机器配置启动加载器的高级选项后,机器出现蓝屏,无法RDP
    Linux由于物理节点故障导致的异常重启-Case1
    Azure经典虚拟机(Windows)如何监测单个磁盘的使用空间
    ARM VM安装Linux Diagnostic 2.3扩展
    rsyslog服务日志报错分析1
    登陆Linux服务器时触发邮件提醒
    部署Azure Log Analytics
    获取指定订阅下所有Azure ARM虚拟机配置(CPU核数,内存大小,磁盘信息)的使用情况
  • 原文地址:https://www.cnblogs.com/cqnswp/p/12568877.html
Copyright © 2020-2023  润新知