ITPub博客

首页 > Linux操作系统 > Linux操作系统 > count(1),count(*),count(列)的区别

count(1),count(*),count(列)的区别

原创 Linux操作系统 作者:suifeng2316 时间:2011-11-02 09:38:47 0 删除 编辑
公司招聘java程序员出的一道sql题目:
select count(*) from xxx与 select count(列) from xxx有什么区别?

应该再加上select count(1) from xxx?

本人理解count(*)和count(1)无区别,都是统计所有行的
据说在8i之前有区别,但是本人没有接触过8i的版本,8i之前的东西对我来说只是个传说,不理也罢。当然如果表xxx有索引,并且索引列非空,那么可以走索引。
对于索引列存在为空的记录,当然加上列is not null条件,也可以走索引,如果真的有空记录,那么加了条件结果是不同的。

count(col)就是按这个col列统计了,如果列有索引,不管col是否为空,都能走索引,只是统计的结果是:col列不为空的记录


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23073818/viewspace-710080/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-09-14

  • 博文量
    48
  • 访问量
    193122