首页 > 数据库 >Mysql学习记录

Mysql学习记录

时间:2022-10-04 23:48:31浏览次数:45  
标签:group 记录 子句 连接 学习 Mysql 查询 where having

1.mysql内连接和外连接的区别
连接语法:join xx on xx(可以在一个语句中多次使用)
内连接(inner join):取出两张表中匹配到的数据,匹配不到的不保留
外连接(outer join):其中外连接又分为左外连接(left outer join)和右外连接(right outer join)即以某一个表为主表,进行关联查询,取出连接表中匹配到的数据,匹配不到的也会保留,其值为NULL(先拿出主表的所有数据,然后到关联的那张表去找有没有符合关联条件的数据,关联不上的以NULL显示)
自连接:当想将表中行与同一表中的其他行组合时,可以使用自连接。要执行自联接操作必须使用表别名来帮助MySQL在单个查询中区分左表与同一张表的右表。就是说相当于是两张表,以第一张表为主表,去匹配与它对应的第二张表的内容。

2.having的使用
having:用于对where和group by查询出来的分组经行过滤,查出满足条件的分组结果。它是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作。

sql语句执行顺序如下:
S-F-W-G-H-O 组合
select –>where –> group by–> having–>order by
当一个语句中同时含有where、group by 、having及聚集函数时,执行顺序如下:
1)执行where子句查找符合条件的数据;
2)使用group by 子句对数据进行分组;对group by 子句形成的组运行聚集函数计算每一组的值;
3)最后用having 子句去掉不符合条件的组。

所以having的使用需要注意以下几点:
having只能用于group by(分组统计语句中)
where 是用于在初始表中筛选查询,having用于在where和group by 结果分组中查询
having语句可以使用聚合函数
count(*):按行获取数量
sum():求和(这里要注意求和是忽略null值的,null与其他数值相加结果为null,所以可以通过ifnull(xxx,0)将null的值赋为0)
avg():求平均数
max():求最大值
min():求最小值,而where不使用。
having子句限制的是组,而不是行。where子句中不能使用聚集函数,而having子句中可以。

MySQL 索引的最左原则

InnoDB 和 MyIsam 引擎的区别?
有哪些优化数据库性能的方法?
如何定位慢查询?
MySQL 支持行锁还是表锁?分别有哪些优缺点?

标签:group,记录,子句,连接,学习,Mysql,查询,where,having
From: https://www.cnblogs.com/skyles/p/16754838.html

相关文章

  • 2022-2023-1 20221312 《计算机基础与程序设计》第五周学习总结
    作业信息班级链接:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK05作业要求:C语言变量基础知识,pep......
  • Ideal安装 +设置maven+mysql
    1、下载Idea安装,地址:https://www.jetbrains.com/idea/download/other.html 2、下载jdk,安装jdk,配置环境变量     新建JAVA_HOME 系统变量,设置jdk安装路径......
  • SV学习(3)——接口interface、modport、时钟块clocking
    SV学习(3)——接口interface、modport、时钟块clocking1.接口interface2.modport3.时钟块clocking3.1.驱动和采用的竞争问题3.2.clocking待补充....=====......
  • SV学习(5)——类和对象、类的成员
    SV学习(5)——类和对象、类的成员1.类和对象概述2.声明类并创建对象3.赋值和拷贝,深拷贝浅拷贝4.对象的销毁5.句柄的使用6.静态变量7.静态方法8.验证为什么......
  • SV学习(6)——类的继承、句柄的使
    SV学习(6)——类的继承、句柄的使用1.类的成员访问类型2.类的继承extends3.子类索引父类的同名函数super4.成员覆盖补充一个有趣的代码5.句柄的传递6.......
  • SV学习(7)——包的使用
    1.包的定义SV提供了一种在多个module、interface和program中共享parameter、data、type、task、function、class等的方法,即利用package(包)的方法来实现。完整的验证环境......
  • ActivityWorks / Keep 记录
    ActivityWorks是之前看到小粉兔用这个,最近又苦于居家学习效率不高,于是尝试用了一下。这个是开源的,虽然我不会捣鼓只能直接拉过来用,而且洋文看起来也比较麻烦,但是就琢磨好记......
  • 【生信学习第三天】论文分区和影响因子 If 查询
    一、什么是影响因子影响因子(英文:Impactfactor,缩写:IF),又译作影响指数或影响系数,指某一期刊的文章在特定年份或时期被引用的频率,是衡量学术期刊影响力的一个重要指标,由美国......
  • centos7.6 安装 mysql5.7
    卸载mariadbrpm-qa|grepmariadbrpm-e--nodepsmariadb-libs-5.5.60-1.el7_5.x86_64//名称会有变CentOS7.6内部集成了mariadb,而安装mysql的话会和mariadb的文......
  • 记录一次prometheus占用大量内存故障处理
    近期通过consul注册了100个node_exporter,发现prometheus所在服务器,频繁发生IO负载过高,内存耗尽的问题(4C8G,普通200GHDD盘),导致服务器短暂性失联,直到服务重启后,内存、IO等指标......