对于count的函数的使用,我们常见的一个错误是在括号内随意指定一个列去统计结果集的行数。但只有指定的行确实都是有值的时候,统计的才是实际的行数,否则可能统计的结果并不是实际的行数。而对于MyISAM存储引擎,如果某一列的值确实不可能为null时,MySQL内部就会将count()函数优化成count(*),若没有带where条件,此时计算速度是非常快的,因为此时没有实际的去计算表的行数。
总结: 对于MyISAM存储引擎,不带where条件的count(*)是非常快的。
技巧:
利用上述MyISAM的count(* )特性,加速一些特定查询条件的count()查询。
如:
对于select count(* ) from tablename where id >10可以做如下的反转查询:
select (select count(* ) from tablename) - count(* ) from tablename where id <10
因为这样在查询阶段MySQL将子查询当做一个常数来处理,大大减少了扫描的行数。
统计所有记录的数量:SELECT COUNT(*) FROM table_name
统计某列的数量:
SELECT COUNT(column_name) FROM table_name
where 条件
sql查询表中数据总条:SELECT COUNT(*) FROM 表名称。
count(*)代表着数据统计的总数。
例子
本例返回 "Persons" 表中的行数:
SELECT COUNT(*) FROM Personsinfo。
返回大于 20 岁的人数:
SELECT COUNT(*) FROM Personsinfo WHERE Age>20
根据筛选条件来统计总数。
拓展资料
SQL
结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
参考资料:百度百科——SQL
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)