MySQL中的count 、union 和group by语句的使用方法
发布时间:2022-01-18 13:36:18 所属栏目:MySql教程 来源:互联网
导读:本篇内容介绍了MySQL中的count()、union()和group by语句的用法的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 一、MySQL中count()的不同用法 coun
本篇内容介绍了“MySQL中的count()、union()和group by语句的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 一、MySQL中count()的不同用法 count()是一个聚合函数,对于返回的结果集,一行行地判断,如果count函数的参数不是NULL,累计值就加1,否则不加。最后返回累计值。【相关推荐:mysql视频教程】 1.对于count(主键id)来说,InnoDB引擎会遍历整张表,把每一行的id值都取出来,返回给server层。server层拿到id后,判断是不可能为空的,就按行累加 2.对于count(1)来说,InnoDB引擎遍历整张表,但不取值。server层对于返回的每一行,放一个数字1进入,判断是不可能为空的,按行累加 3. 对于count(*)来说,并不会把全部字段取出来,而是专门做了优化。不取值,count(*)肯定不是null,按行累加 MySQL中的count()、union()和group by语句的用法 二、union执行流程 为了便于量化分析,以下面表t1来举例 create table t1(id int primary key, a int, b int, index(a)); CREATE DEFINER=`root`@`%` PROCEDURE `idata`() BEGIN declare i int; set i=1; while(i<=1000)do insert into t1 values(i, i, i); set i=i+1; end while; END 分析下面这条SQL语句: (select 1000 as f) union (select id from t1 order by id desc limit 2); union的语义是取这两个子查询结果的并集。并集的意思是这两个集合加起来,重复的行只保留一行 第二行的key=PRIMARY,说明第二个子句用到了索引id 第三行的Extra字段,表示在对子查询的结果集做union的时候,使用了临时表 (编辑:温州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |