• mysql表的增删改查(进阶)



    目录

    ??新增

    ??聚合查询

    ??分组查询

    ??条件查询

    ??联合查询

    ???自连接

    ??合并查询

    ??小结


    ??新增

    insert into B select * from A;//将A表的信息通过查询新增到B表中去
    
    • 1

    ??聚合查询

    count;//返回到查询的数据总和
    
    • 1

    sum;//返回到查询的数据总和(只对数字有意义)
    
    • 1

    只对数字有意义

    avg/max/min;//返回查询数据的平均值/最大值/最小值(只对数字有意义)
    
    • 1

    ??分组查询

    select * from 表名 group by 分组条件;
    
    • 1

    这里是先执行分组,再根据分组执行每个组的聚合函数。

    ??条件查询

    having;
    
    • 1

    group by 子句进行分组以后,需要对分组结果再进行条件过滤时,就可以使用having。where是在分组之前执行,如果要对分组之后的结果进行条件筛选,就需要使用having(having搭配group by使用)。

    例如:求每种角色的平均薪资,除了吴九。(这里就是用where,分组之前指定条件,先去除吴九,在分组求平均薪资。

    求每种角色平均薪资,只保留平均薪资10000以下的,这里就用having。要先求出平均薪资才能进行筛选。

    ??联合查询

    第一种写法:select * from 表名1,表名2;
    第二种写法:select * from 表名1 join 表名2 on 条件;
    
    • 1
    • 2

    联合查询(较重要)是多表查询,前面的查询都是单表查询。多表查询中的核心操作—笛卡尔积。

    笛卡尔积的运算就是将两个表的每条记录分别进行组合,得到一组新的记录。

    以上记录并不都是我们想要的结果,我们可以通过筛选得到我们想要的结果。

    那么join on后面跟条件和 用where 跟条件有什么区别呢?

    from多个表where写法叫做“内连接"。
    使用 join on的写法,既可以表示内连接,还可以表示外连接。
    select 列名 from 表1 inner join 表2 on条件;inner join表示是"内连接"其中inner可以省略。
    select 列名 from 表1 left join 表2 on条件;左外连接。
    select列from表1 right join表2 on条件;右外连接。

    ??自连接

    自连接是指在同一张表连接自身进行查询。

    例如:显示所有 “ 语文 ” 成绩比 “数学” 成绩高的成绩信息。

    首先要知道语文和数学这两门课程的course_id,先找到这俩门课程。然后在比较他俩高低。

    select s1.student_id,s1.score,s2.score from score as s1,score as s2 where s1.student_id=s2.student_id and s1.course_id=3 and s2.course_id=1 and s1.score>s2.score;
    
    • 1

    **??**合并查询

    union;//这个可自动去重
    union all;//这个不可自动去重
    
    • 1
    • 2

    该操作符用于取得两个结果集的并集。

    例如:查询id小于3,或者名字为“英文”的课程。

    select * from course where id<3 union select * from course where name='英文'; 
    
    • 1

    或者使用or来实现

    select * from course where id<3 or name='英文';
    
    • 1

    ??小结

    以上就是今天的内容了,有什么问题大家都可以在评论区留言

  • 相关阅读:
    Linux中通过什么命令可以过滤控制字符?
    STM32创建工程步骤
    Kaggle 专利匹配比赛金牌方案赛后总结
    【NI国产替代】高速数据采集模块,最大采样率为 125 Msps,支持 FPGA 定制化
    Netty实战(一)
    12v24v60v高校同步降压转换芯片推荐
    Java 实现简单的《用户登录小程序》
    Vue3 Vite Setup语法糖插件的配置
    [Qualcomm][Voice]语音通话软件框架介绍(翻译)
    【可变形注意力(1)】Multi-scale Deformable Attention Transformers 多尺度变形注意力
  • 原文地址:https://blog.csdn.net/m0_67393619/article/details/126037399