count(*) 与count(列名)的区别

aprilangela 2008-09-04 11:35:43
恩 我记得有个 * 有个可以查出null 的信息 这个null 指的是什么?那一列为null?? 条件列么? 其实还是有点糊涂


那个,除此之外 还有什么? count (*) 会用到索引??


今天面试因为这个题被鄙视了... 郁闷死了 还顺便鄙视我们老师。

我不就一应届生吗 至于这么鄙视我么!!居然因为count(*) 还是count(主键列)的问题 说我sql 有问题.....

各位师兄师姐帮帮忙吧~~
...全文
296 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
oracledbalgtu 2008-09-05
  • 打赏
  • 举报
回复
count(*) 和 count(主键列)得到的结果会始终一样,因为主健不会为空。

count(*) 会把null列也计算在你,不管你是一列为null,还是所有column都为null;
count(columname) 只把列内容不是null的计算,是null的忽略。


[Quote=引用楼主 aprilangela 的帖子:]
恩 我记得有个 * 有个可以查出null 的信息 这个null 指的是什么?那一列为null?? 条件列么? 其实还是有点糊涂


那个,除此之外 还有什么? count (*) 会用到索引??


今天面试因为这个题被鄙视了... 郁闷死了 还顺便鄙视我们老师。

我不就一应届生吗 至于这么鄙视我么!!居然因为count(*) 还是count(主键列)的问题 说我sql 有问题.....

各位师兄师姐帮帮忙吧~~
[/Quote]
chqchq 2008-09-05
  • 打赏
  • 举报
回复
COUNT(*)返回表中所有的行,包括空行和重复的行。
COUNT(列名)返回该列不为空的所有行。
count(*)会用到索引,但是前提是索引的列中没有null值,null值是不出现在索引中的。
aprilangela 2008-09-05
  • 打赏
  • 举报
回复
谢谢,索引啊~~ 好郁闷

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧