下载Navicat Premium最新版本
  
  Navicat Premium是一个可连接多种数据库的管理工具,它可以让你以单一程序同时连接到MySQL、Oracle及PostgreSQL数据库,让管理不同类型的数据库更加的方便。
  
  在MySQL中有几种获取行数的方法。一些数据库管理产品提供数据库统计信息,如表大小,但也可以使用直接的SQL来完成。在这篇文章中,我们将使用本机COUNT()函数来检索MySQL数据库中一个表或视图中的行数。在第2部分中,我们将学习如何从多个表甚至从数据库中的所有表中获取行计数。
  
  COUNT()函数的多种形式
  
  您可能已经知道COUNT()函数返回表中的行数。但是还有一点要比这个多,因为COUNT()函数可以用来计算表中的所有行,或者只计算那些符合特定条件的行。秘密在函数签名中,它有几种形式:COUNT(*)、COUNT(expression)和COUNT(DISTINCT expression)。
  
  在每种情况下,COUNT()都返回一个BIGINT,该BIGINT包含匹配行的数量,如果未找到匹配行,则返回零。
  
  对表中的所有行进行计数
  
  要对表中的所有行进行计数,无论它们是否包含空值,请使用COUNT(*)。该形式的COUNT()函数基本上返回由SELECT语句返回的结果集中的行数。
  
  1
  
  SELECT COUNT(*) FROM cities;
  
  像上面这样的语句,在没有WHERE子句或附加列的情况下调用COUNT(*)函数,将在MyISAM表上执行得非常快,因为行数存储在information_schema数据库的Tables表的Table_Rows列中。
  
  对于事务性存储引擎(如InnoDB),存储精确的行计数是有问题的,因为InnoDB不在表中保留行的内部计数。如果是这样,并发事务可能会同时“看到”不同数量的行。因此,SELECT COUNT(*)语句只对当前事务可见的行进行计数。这意味着,在繁重的工作负载期间使用COUNT(*) 运行查询可能会导致数字稍微不准确。
  
  只对具有COUNT(expr)的非空行进行计数
  
  不向COUNT()传递任何内容将执行函数的COUNT(expr)版本,但sans参数除外。这样调用COUNT()只返回不包含空值的行。例如,假设我们有一个名为code_values的简单表:
  
 
public ushort TransactionIdentifier { get; set; }
public ushort ProtocolIdentifier { get; set; }
public ushort Length { get; set; }
public short UnitIdentifier { get; set; }

public ModbusHeader(IByteBuffer buffer)
{
TransactionIdentifier = buffer.ReadUnsignedShort();
ProtocolIdentifier = buffer.ReadUnsignedShort();
Length = buffer.ReadUnsignedShort();
UnitIdentifier = buffer.ReadByte();
}

public ModbusHeader(www.fengshen157.com/ ushort transactionIdentifier, short unitIdentifier)
: this(transactionIdentifier, 0x0000,www.gcyL157.com unitIdentifier) // for modbus protocol:www.michenggw.com Protocol Identifier = 0x00
{

}

private ModbusHeader(www.dasheng178.com ushort www.mcyllpt.com transactionIdentifier, ushort protocolIdentifier, short unitIdentifier)
{
TransactionIdentifier = transactionIdentifier;
ProtocolIdentifier = protocolIdentifier;
UnitIdentifier = unitIdentifier;
}

public IByteBuffer Encode()
{
IByteBuffer buffer = Unpooled.Buffer();

buffer.WriteUnsignedShort(TransactionIdentifier);
buffer.WriteUnsignedShort(ProtocolIdentifier);
buffer.WriteUnsignedShort(Length);
buffer.WriteByte(UnitIdentifier);

  
  code_values
  
  +-------+
  
  | code |
  
  +-------+
  
  | 1 |
  
  +-------+
  
  | |
  
  +-------+
  
  | |
  
  +-------+
  
  | 4 |
  
  +-------+
  
  从表中选择COUNT()将返回2,即使有4行:
 
  SELECT COUNT(*) FROM code_values;
  
  +---------+
  
  | COUNT() |
  
  +---------+
  
  | 2 |
  
  +---------+
  
  请注意,很少使用此版本的COUNT()函数,因为在规范化的数据库中,空行不应该是问题,这种情况只有在表没有主键时才会发生。在大多数情况下,COUNT(*)都可以正常工作。
  
  当然,COUNT(expr)确实接受正确的表达式。下面是另一个同样获取空行和非空行的查询:
  
  1
  
  SELECT COUNT(IFNULL(code, 1)) FROM code_values;
  
  计算非空值
  
  COUNT函数的COUNT(expr)版本还接受单个列名,其效果是COUNT(column_name)将返回column_name不为空的记录数。因此,以下SELECT查询将获取描述列包含非空值的行数:
  
  1
  
  SELECT COUNT(description) FROM widgets;
  
  在第2部分中,我们将学习如何使用COUNT(DISTINCT expression)签名以及如何从多个表中获取行计数。

转载于:https://www.cnblogs.com/qwangxiao/p/10369952.html

Navicat使用教程:获取MySQL中的行数(第1部分)相关推荐

  1. java中获取文件总行数_关于java:如何以有效的方式获取文件中的行数?

    本问题已经有最佳答案,请猛点这里访问. 我有一个大文件. 它包括大约3.000-20.000行. 如何使用Java获取文件中的行总数? 从你的评论到答案来判断,你要找的词是"有效的" ...

  2. jdbc获取结果行数_如何获取JDBC中的行数?

    I've executed a JDBC query to obtain a resultset. Before iterating over it, I'd like to quickly find ...

  3. jdbc获取结果行数,如何获取JDBC中的行数?

    I've executed a JDBC query to obtain a resultset. Before iterating over it, I'd like to quickly find ...

  4. MySQL中的行级锁,表级锁,页级锁

    数据库锁是数据库系统中非常重要的一个概念,本文将深入分析数据库中的锁相关知识,您可点击下方音频收听或直接查看文稿中的文字. 在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并 ...

  5. Mysql中的行级锁、表级锁、页级锁

    转载自 Mysql中的行级锁.表级锁.页级锁 在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足. 在数据库的锁机制中介绍过,在DBMS中,可以按 ...

  6. mysql java 获取周_Java中获取Mysql中datetime类型的数据

    由于Java中的日期类型只有Date类型,而Mysql中即有date型,又有datetime型,当我们想要在java中获取Mysql中datetime类型的数据或向Mysql数据库中插入datetim ...

  7. 如何合并mysql中的行_如何在MySQL中合并行?

    要合并MySQL中的行,请使用GROUP_CONCAT(). 让我们首先创建一个表-mysql> create table DemoTable734 ( Id int, Name varchar ...

  8. python nums函数获取结果记录集有多少行记录_PHP mysqli_num_rows():获取查询结果的行数...

    在 PHP 中,想要获取由 SELECT 语句查询到的结果集中有多少条数据的话,则需要使用 mysqli_num_rows() 函数来实现.首先我们来看一下该函数的语法结构: 面向对象风格的写法 $m ...

  9. python excel行数_Python:打开现有的Excel文件并计算工作表中的行数

    我有一个现有的Excel文件.我想加载那个并获取此工作表中的行数,以便稍后写入此工作表的下一行并再次保存.我收到以下错误消息: AttributeError: 'Worksheet' object h ...

  10. excel总行数 java_计算Excel工作表列中的行数(提供的Java代码)

    参考我之前的问题 How to calculate number of rows in a column of Excel document using Java,我能够计算给定表格中的总列数.现在, ...

最新文章

  1. 文件上传之Springmvc方式上传原理分析
  2. 【附全部代码+图片】使用HTML5+CSS3绘制HTML5的logo——Web前端系列学习笔记
  3. ZooKeeper学习第一期---Zookeeper简单介绍(转)
  4. mysql win10 无法配置文件_MySQL设置文件无法更改的处理方案详细说明(Win10)
  5. 将android中如何调整Toast位置?
  6. 模板类的声明和定义要放在同一个文件
  7. 公众号 多服务器配置_多领国微信官方公众号在线
  8. 扇贝有道180926每日一句
  9. 【图像直线拟合】基于matlab最小二乘法图像直线拟合【含Matlab源码 100期】
  10. ajax 循环php数组,使用Jquery,AJAX,PHP和数组进行实时更新
  11. 阿拉伯文字库 阿拉伯语字库 阿拉伯 字库 变形组合算法
  12. Springboot创建webService接口时的cxfconfi文件报错出现DispatcherServletPath不能找到
  13. gps天线拆解图片_GPS天线原理解析
  14. border缩写属性
  15. 也就整了一万字的「数据指标体系」指南。
  16. 计算机为何引入16进制,计算机内存地址为什么要用16进制数来表示
  17. 水星无线路由器设置虚拟服务器,水星路由器无线中继设置步骤
  18. 双非本科生进大厂,而我还在底层默默地爬树(上)
  19. Gym 102028D Keiichi Tsuchiya the Drift King(2018 ICPC 焦作站 D 题) 计算几何
  20. 【邻接表】77 邻接表:顶点u的下一个邻接点

热门文章

  1. java泛型好处及案例
  2. win7下用UtralISO制作U盘系统盘--UltraISO打开Ubuntu只有EFI文件夹
  3. linux里命令pkg-config工具的使用
  4. mac好用的软件 小总结 Alfred
  5. 编写 if 时尽量不要带 else
  6. 一款功能强大的 IP 查询工具!
  7. 为什么领导们总是劝大家不要只盯着工资?
  8. [重磅,建议收藏]JAVA集合框架中的常用集合及其特点、适用场景、实现原理简介...
  9. 分布式架构的核心要素和设计方法
  10. Linux 系统运行速度太慢的关键原因全都在这了