select * 和select 1,select count(*)和select count的区别
Posted 程序员这么可爱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了select * 和select 1,select count(*)和select count的区别相关的知识,希望对你有一定的参考价值。
目录
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的区别的主要内容,如果未能解决你的问题,请参考以下文章
List的Select 和Select().tolist()