SELECT COUNT(*);
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SELECT COUNT(*);相关的知识,希望对你有一定的参考价值。
我有一个数据库,database1
,里面有两张桌子(Table 1
,Table2
)。
在Table1
有3行,在Table2
有2行。现在如果我在SELECT COUNT(*);
上执行以下SQL查询database1
,那么输出就是"1"
。
有没有人有这个想法,这"1"
表示什么?
两个表的定义如下。
CREATE TABLE Table1
(
ID INT PRIMARY KEY,
NAME NVARCHAR(20)
)
CREATE TABLE Table2
(
ID INT PRIMARY KEY,
NAME NVARCHAR(20)
)
这是因为您在没有指定表的情况下执行了select count(*)
。
count函数返回指定数据集中的行数。如果您没有指定要从中选择的表,则单个选择将只返回单行 - 因此count(*)
将返回1.(在某些版本的SQL中,例如Oracle,您必须指定一个表或类似的数据库对象; Oracle包含一个虚拟表(称为DUAL),可以在不需要特定表时选择。)
如果不指定要查询的表,通常不会执行选择计数(*)。根据要查询的默认系统表,您的数据库服务器可能会给您一个“1”的计数。
尝试使用
select count(*) from Table1
没有表名就没有意义。
没有表名,它总是返回1是否是任何数据库....
由于这是标记的SQL服务器,MSDN说明。
COUNT始终返回int数据类型值。
也,
COUNT(*)返回组中的项目数。这包括NULL值和重复项。
因此,由于您没有提供表来执行COUNT
,因此默认(假设)是返回1
。
COUNT
函数返回结果的行数。如果未指定任何表,则默认返回1。即,COUNT(*), COUNT(1), COUNT(2), ...
将永远返回1
。
Select *
没有from子句是“从Universe中选择所有”,因为你没有过滤掉任何内容。在你的情况下,你问的是“有多少宇宙?”这正是我教它的方式。我会在第一天写在董事会上,选择*并询问它意味着什么。答:给我这个世界。从那里我将教导如何将宇宙过滤到有意义的事物。
我必须承认,我从未想过选择计数(*),这会使它更有趣,但仍然会带来真正的答案。我们只有一个世界。 在没有咨询Steven Hawking的情况下,SQL必须只与1竞争。
查询结果是正确的。
以上是关于SELECT COUNT(*);的主要内容,如果未能解决你的问题,请参考以下文章