淘气堡网站建设,找摄影作品的网站,黑龙江省鹤岗市城乡建设局网站,现在还有什么网站Mysql版本#xff1a;8.0.26 可视化客户端#xff1a;sql yog 文章目录 一、Mysql之count函数简介二、count(列名) #xff0c;count(常量)与count(*) 有何区别#xff1f;2.1 统计字段上的区别2.2 执行效率上的区别 一、Mysql之count函数简介
#x1f449;表达式 COUNT(… Mysql版本8.0.26 可视化客户端sql yog 文章目录 一、Mysql之count函数简介二、count(列名) count(常量)与count(*) 有何区别2.1 统计字段上的区别2.2 执行效率上的区别 一、Mysql之count函数简介
表达式 COUNT(expression) 描述 返回查询的记录总数expression 参数是一个字段或者 * 号 举例说明
①准备表数据 ②查询统计user表中的username字段的总记录数
代码示例如下
SELECT COUNT(username) FROM USER;ps MySQL在Windows下不区分大小写但在Linux下默认是区分大小写。 因此数据库名、表名、字段名都不允许出现任何大写字母避免节外生枝。 二、count(列名) count(常量)与count(*) 有何区别
2.1 统计字段上的区别
区别
count(*)包括了所有的列相当于行数在统计结果的时候不会忽略为NULL的值count(常量)包括了所有的列比如用1代表代码行在统计结果的时候不会忽略为NULL的值。count(列名)只包括列名那一列在统计结果的时候会忽略列值为空(这里的空不是指空字符串或者0,而是表示null)的计数即某个字段值为NULL时不统计。
不信请看如下案例演示 ①准备表数据 ②sql代码测试以字段id与name举例 使用count(*) 与 count(常量) 查询统计 查询user表中所有的记录行数 代码示例如下 a. 使用count(*)查询统计 SELECT COUNT(*) FROM USER;b. 使用count(常量)查询统计以1为例 SELECT COUNT(1) FROM USER;使用count函数统计列name与id 代码示例如下 a. 使用count(name) 查询统计列name的总记录数【2条】 SELECT COUNT(NAME) FROM USER;b. 使用count(id) 查询统计列id的总记录数【4条】 SELECT COUNT(id) FROM USER;③why 原因
从下图中表user中的数据来看列name下有效【非NULL】的字段值共有两行无效【为NULL】的字段值共有两条而列id下有效【非NULL】的字段值共有四行没有无效【为NULL】的字段值 2.2 执行效率上的区别
区别 列名为主键count(列名)会比count(1)快 列名不为主键count(1)会比count(列名)快 如果表多个列并且没有主键则 count1 的执行效率优于 count* 如果有主键则 select count主键的执行效率是最优的 如果表只有一个字段则 select count*最优