select * 和select 1,select count(*)和select count的区别

Posted 程序员这么可爱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了select * 和select 1,select count(*)和select count的区别相关的知识,希望对你有一定的参考价值。

目录

1、select * 和select 1的区别

2、select count(*)和select count(1)的区别


1、select * 和select 1的区别

语法:select * from 表名称;

查询出表的所有数据,是返回所有行的所有列,性能比select 1差。

语法:select 1 from 表名称;

查询出结果是所有记录数的常量,性能比select *高;对应所有行,返回的永远只有一个值,即常量,所以正常只会用来判断是否有还是没有。

如果要返回数据,使用select * ,如果要判断有没有结果使用select 1;

2、select count(*)和select count(1)的区别

语法:select count(*) from 表名称;

语法:select count(1) from 表名称;

一般情况下,select count(*)和select count(1)两个返回的结果是一样的。

如果表中没有主键,使用count(1)比count(*)快;

如果有主键,count(主键)快;

如果你的表只有一个字段的话那count(*)就是最快的

count(*)和count(1)的结果一样,都包括对NULL的统计,而count(字段) 不包括NULL的统计;

实操中,选择使用 count(1)的情况比较多;

主键的作用:

1)保证实体的完整性;

2)加快数据库的操作速度

3)在表中添加新记录时,数据库会自动检查新记录的主键值,不允许该值与其他记录的主键值重复。

4) 数据库自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。

主键不是非要不可,可以从这两个角度权衡是否需要主键:

1.是否满足业务要求

2.数据查询效率(主键可以提高查询效率,当然合理的索引替代也可以)

& 和 && 区别和联系,| 和 || 区别和联系

& 和 && 区别和联系,| 和 || 区别和联系,实际项目中,什么情况用哪种?

首先,& 和 && 的联系(共同点):

& 和 && 都可以用作 逻辑与 运算符,但是要看使用时的具体条件来决定。

技术图片

 

情况1:当上述的操作数是boolean类型变量时,& 和 && 都可以用作逻辑与运算符。

情况2:当上述的表达式是boolean类型变量时,& 和 && 都可以用作逻辑与运算符。

表示逻辑与(and),当运算符两边的表达式的结果或操作数都为true时,整个运算结果才为true,否则,只要有一方为false,结果都为false。

& 和 && 的区别(不同点):

1)& 逻辑运算符称为逻辑与运算符,&& 逻辑运算符称为短路与运算符,也可叫逻辑与运算符。

2)对于 & :无论任何情况,&两边的操作数或表达式都会参与计算。

3)对于 && :当&&左边的操作数为false或左边表达式结果为false时,&&右边的操作数或表达式将不参与计算,此时最终结果都为false。

综上所述,如果逻辑与运算符的第一个操作数为false或第一个表达式的结果为false时,对于第二个操作数或表达式是否进行运算,对最终的结果没有影响,结果肯定是false。推荐多用&&,因为它的效率更高些。

附:&还可以用作位运算符。当&两边操作数或两边的表达式的结果不是boolean类型时,&用于按位运算符的操作。

| 和 || 的区别和联系与 & 和 && 的区别和联系类似。

以上是关于select * 和select 1,select count(*)和select count的区别的主要内容,如果未能解决你的问题,请参考以下文章

使用插件和不使用插件实现select的框

什么是散列表?select * 和select 1?

Oracle中select 1和select *的区别

List的Select 和Select().tolist()

SQL Select Query 中 Top 1 1 和 Select 1 之间的差异

Oracle中select 1和select *的区别