SQL语法理论

SQL语法理论,sql,Sql,我正在整理我的SQL知识,并且一直在复习各种教程。第一个教程之一演示了如何使用以下方法计算表中的行数: SELECT COUNT(*) FROM table 但在前面,本教程演示了使用以下命令从表中返回所有行和列: SELECT * FROM table 那么,为什么COUNT(*)不返回表中“单元格”的总数呢?例如,一个有三列五行的表有十五个“单元格”。看起来COUNT(*)应该返回15,而不是5。单元格不是有趣的,行数是,要找到单元格,只需按数字多列即可 SELECT*FROM TABL

我正在整理我的SQL知识,并且一直在复习各种教程。第一个教程之一演示了如何使用以下方法计算表中的行数:

SELECT COUNT(*) FROM table
但在前面,本教程演示了使用以下命令从表中返回所有行和列:

SELECT * FROM table

那么,为什么COUNT(*)不返回表中“单元格”的总数呢?例如,一个有三列五行的表有十五个“单元格”。看起来COUNT(*)应该返回15,而不是5。

单元格不是有趣的,行数是,要找到单元格,只需按数字多列即可

SELECT*FROM TABLE
将返回所有行,如果您有1000万行,并且只需要计数,则不必获取所有1000万行。

SELECT count(*)
返回行数,(它计算行数);
*
意味着让数据库引擎决定执行此操作的最佳方式

SELECT*
表示选择行中的所有列,
*
表示所有列,但不单独命名


换句话说,即使它们看起来相似,它们也会做两件不同的事情<代码>计数(*)是一个函数(您可以
选择计数(*)
来使用它)<代码>选择*不是。

苹果是圆的,香蕉是长的。为什么不反过来呢?答:因为这就是它们的方式,因为
selectcount(*)
返回行数(它计算行数);*意味着让数据库引擎决定这样做的最佳方式
SELECT*
表示选择行中的所有列,*表示所有列,但不单独命名。瞧,他们做两件不同的事情,尽管他们看起来很相似<代码>计数(*)是一个函数<代码>选择*不是。为什么我们需要知道“单元格”的总数?@ken white,如果你将你的评论作为答案,我会将其标记为有用。