精华内容
下载资源
问答
  • 查询表总行数的问题 Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiBase/html/delphi_20061208235833217.html 在delphi中我查询了数据表总数,要把这个值赋给一个变量怎么操作? 不好意思我不能给分了....
    查询表的总行数的问题 Delphi / Windows SDK/API
    http://www.delphi2007.net/DelphiBase/html/delphi_20061208235833217.html
    在delphi中我查询了数据表总数,要把这个值赋给一个变量怎么操作?  
      不好意思我不能给分了.大家义务帮我下吧~~

    是把“表的总行数”这个整型数赋值给变量是吧?  
       
      数据集以ADOQuery为例:  
       
      Var    
            rCount:integer;  
      begin  
            with   adoquery   do  
                  begin  
                  close  
                  sql.clear;  
                  sql.text:='select   *   from   表名';  
                  open;  
                  end;  
      //上面with到此处,都是我多写上的  
                  iCount:=ADOQuery.recordcount;//其实就是这一句  
                  showmessage(inttostr(iCount));  
      end;  
       
      ----难道你的问题就是这么简单吗?

    上面有两处,把rCount写错成iCount了,请自己改

    我主要是想实现自动编号的功能.不过我自己解决了~  
      因为delphi才用,都在自己摸索~  
      能不能指教下怎么判断两个edit中输入的是否一致?!

    呵~~  
      if   Edit1.text   =   Edit2.text   then   一致   else   不一致

    可是我这样做,运行之后没判断的...不知道为什么~  
      我是想做密码输入判断.一致的话把值传入数据库...这么写我试过不行才问大家的...很奇怪

    ...  
      sql.text   :=   'select   count(*)   as   cnt   from   表名'  
      ...  
      iCnt   :=   ADOQuery.FieldByName('cnt').AsInteger;

    转载于:https://www.cnblogs.com/delphi2007/archive/2009/02/11/1388370.html

    展开全文
  • 1、mysql查询所有总行数 SELECT sum( TABLE_ROWS ) FROM information_schema.tables WHERE table_schema = ‘xlife_city_brain’; 2、mysql查询所有总行数和大小 SELECT table_schema AS ‘数据库’, sum( ...

    1、mysql查询所有表的总行数
    SELECT
    sum( TABLE_ROWS )
    FROM
    information_schema.tables
    WHERE
    table_schema = ‘xlife_city_brain’;

    2、mysql查询所有表的总行数和大小
    SELECT
    table_schema AS ‘数据库’,
    sum( table_rows ) AS ‘记录数’,
    sum( TRUNCATE ( data_length / 1024 / 1024, 2 ) ) AS ‘数据容量(MB)’,
    sum( TRUNCATE ( index_length / 1024 / 1024, 2 ) ) AS ‘索引容量(MB)’
    FROM
    information_schema.TABLES
    GROUP BY
    table_schema
    ORDER BY
    sum( data_length ) DESC,
    sum( index_length ) DESC;

    展开全文
  • 一般的查询语句是这样的 SELECTid,nameFROMSystemEventsWHERE1=1 limit 9,10 SELECT* FROMSystemEventsWHERE1=1 limit 9,10 这样查询出来的结果 要统计行数很麻烦 有一个方法可以将上次查询的结果 统计出来...

    一般的查询语句是这样的

    SELECT  id,name FROM SystemEvents WHERE  1=1 limit 9,10
    SELECT  * FROM SystemEvents WHERE  1=1 limit 9,10
    这样查询出来的结果 要统计行数很麻烦 有一个方法可以将上次查询的结果 统计出来行数 并且不会管limit是否存在 同时保留条件
    SELECT SQL_CALC_FOUND_ROWS id,name FROM SystemEvents WHERE  1=1 limit 9,10
    只要加一句SQL_CALC_FOUND_ROWS在 *号或列名之前
    然后在查询完后马上使用found_rows()函数来查询上次查询的结果统计
    SELECT found_rows() AS rowcount

    转载于:https://www.cnblogs.com/carlo-jie/p/7510243.html

    展开全文
  • 我们经常会使用到一个SQL语句,就是查询某张表的总行数。常常使用的查询命令有几种,比如:select count(*) from t,select count(id) from t(id为主键),select count(1) from t,select count(某普通字段) from t...

    背景

    我们经常会使用到一个SQL语句,就是查询某张表的总行数。常常使用的查询命令有几种,比如:select count(*) from tselect count(id) from t(id为主键)select count(1) from tselect count(某普通字段) from t以及show table status的rows字段。然而却不知道用哪种查询方式最合适。接下来简单介绍一下我们在MySQL中查询表的总行数时该用什么命令。

    不同存储引擎,查询效率不同

    在分析几种查询方式之间的不同之前,我们先来看下以select count(*) from t为例,不同存储引擎之间查询行数方式的不同。常见的存储引擎有MyISAM和InnoDB。

    InnoDB:每次我们需要查询某张表的总行数时,都会遍历整张表计算出结果。

    MyISAM:每张表的总行数会记录在磁盘中存储,在我们需要查询某张表的总行数时,命令会直接取出对应字段信息。(不过需要注意,当命令查询的不是表总行数,而是where查询某些行时,也依然需要像InnoDB一样遍历整张表计算出结果)

    很显然,在表行数较多时,MyISAM的方式是要比InnoDB更快的。

    那么,为什么InnoDB不采用与MyISAM相同的处理方式呢?

    本质原因在于InnoDB支持事务,我们可以看个具体的例子就明白了。

    假设我们的表t中包含了100行数据,且有如下三个会话在做SQL操作。(会话2与会话3是事务,会话1是普通语句)
    在这里插入图片描述
    先不管中间是怎样的过程,我们看最后三个会话输出的查询结果。

    如果是MyISAM存储引擎,它是不支持事务的,查询出的结果三个会话就都是102。

    而如果是InnoDB存储引擎,它是支持事务的,可重复读是默认的隔离级别,所以查询出的结果三个会话各不相同,会话1是101,会话2是100,会话3是102。

    那么,为什么InnoDB不采用与MyISAM相同的处理方式呢?这就很明显了。因为在相同时刻,InnoDB由于支持事务,所以可能会读出的结果不同,

    因此,InnoDB只能在需要查询表总行数时去遍历计算了。

    MyISAM由于不存在这样的问题,当然就可以把总行数存储下来,每次需要时直接读取就行了。

    几个常用查询语句的效率不同

    说回到开始说的几个常用查询语句,我们到底该用哪个查询语句呢?我们以InnoDB引擎为例进行说明。

    首先,我们要了解一下count()函数的作用,count()函数会判断所查询字段是否为NULL,会将非NULL的行累加起来,得到最终的行数值。

    接下来分别分析这几个常用查询语句:

    select count(字段) from t(字段为非NOT NULL且非索引):服务器会将字段返回给服务器,服务器判断每一个字段内容是否为NULL,如果不为NULL,则会计数加1,累加出来的结果即为语句结果返回。

    select count(id) from t(id为主键):InnoDB会将每一行id返回给服务器,服务器判断主键不可能为NULL,累加出来的结果即为语句结果返回。

    select count(1) from t:InnoDB会遍历整张表,不过不会取字段,也不会取值。而是服务器放一个数字1进去,并将累加出来的值作为结果返回。

    select count(*) from t:优化器针对该语句做了优化,InnoDB不需要取字段给服务器,而是服务器直接计算行总数并返回。

    由于 count(*)count(1) 都无需从InnoDB中取值,而是直接计算行总数,则两者运行时间差不多。

    count(id) 会取出id值进行判断,虽然主键值都不会为NULL,但运行时间会比前两者长一些。

    count(字段)count(id) 判断方式一样,只是其不是索引,所以遍历起来较count(id) 会慢。

    总结来说,四种常用查询方式的速度顺序为:count(字段)<count(id)<count(1)<count(*)

    注意:select count(id) from t语句,虽然id为主键不可能是NULL值,理论上来说,MySQL是无需一个一个再进行数值判断的。然而目前MySQL并没有对此做优化,应该是在查询总行数时,MySQL就建议使用select count(*) from t,因此专门对count(*) 做了优化。其余的查询就都按照需要什么数据则取什么数据这样的原则统一处理。

    show table status命令

    show table status命令中的Rows字段也会显示出表的总行数,但是该命令是通过采样统计来计算出的表总行数,因此会有很大的误差。作为参考值还可以,如果要使用精确值,就不推荐了。

    总结

    简单总结一下,我们在查询某张表总行数时,如果需要知道大体行数,则可使用show table status的rows字段查看。如果需要知道精确行数,则需使用select count(*) from t命令来查看。

    展开全文
  • java语言获取数据库中的总行数

    千次阅读 2019-07-29 14:57:17
    获取数据库中的总行数,用于做分页查询的动态更新。在这里我也是迷了半天,下面给出代码,应该所有的查询行数的代码都是这种的格式 ##直接上代码 public int getCount(String sql) { int count = 0; ...
  • use [database] select schema_name(t.schema_id) as [Schema], t.name as TableName,i.rows as [RowCount] from sys.tables as t, sysindexes as i where...
  • mysql的count(*)的优化,获取千万级数据总行数

    万次阅读 热门讨论 2018-11-23 17:04:02
    这个问题是今天朋友提出来的,关于查询一个1200w的数据总行数,用count(*)的速度一直提不上去。找了很多优化方案,最后另辟蹊径,选择了用explain来获取总行数。 二、关于count的优化 &amp;amp;amp;n
  • 例如我的数据名称是: steps,那么我的查询方法就是: SELECT COUNT(*) FROM steps; 查询结果 然后换一个user_auto 就是这么简单,当然,我看到有些教程说SQL只能查询大概(数据量 超级多的时候)的数值,这个...
  • 有个联表查询的分页需求,我只想得到分组后查询结果的行数而不是每个记录的,用count怎么都得不到我想要的结果,上网搜罗了好久都没找到我想要的回答,第一次写这种语句,所以就来记录一下。 ...
  • 这里写自定义目录标题关于mysql瞬间获取总数量,获取千万级数据总行数探索一、PHP的count方法探索二、SELECT COUNT(id) FROM(子查询)探索三、使用查询优化器(估算)取行数 关于mysql瞬间获取总数量,获取千万级...
  • 因为MySQL对该引擎的count有对应优化,精确的行数会被储存在存储引擎中,因此此类没有where条件的单表总行数查询会迅速返回结果。 对于InnoDB: 因为InnoDB的事务特性,在同一时刻表中的行数对于不同的事务而言是不...
  • 能够写出查询总行数的SQL语句 1. 聚合函数的介绍 聚合函数又叫组函数,通常是对表中的数据进行统计和计算,一般结合分组(group by)来使用,用于统计和计算分组数据。 常用的聚合函数: count(col): 表示求指定列的...
  • 就是原本运行好好的分页查询代码,居然有个小虫子跑出来,很是令人不爽。说来也惭愧,Hibernate也用了那么长时间了。可对底层API却很不属性。查了下网络,把自己的一知半解说出来。bug起源。看看代码:return (Page...
  • 这个问题是今天朋友提出来的,关于查询一个1200w的数据总行数,用count(*)的速度一直提不上去。找了很多优化方案,最后另辟蹊径,选择了用explain来获取总行数。 二、关于count的优化 网上关...
  • 一、前言这个问题是今天朋友提出来的,关于查询一个1200w的数据总行数,用count(*)的速度一直提不上去。找了很多优化方案,最后另辟蹊径,选择了用explain来...
  • 这个问题是今天朋友提出来的,关于查询一个1200w的数据总行数,用count(*)的速度一直提不上去。找了很多优化方案,最后另辟蹊径,选择了用explain来获取总行数。 二、关于count的优化 网上关于count()优化的有...
  • select rowcnt from sysindexes where id = object_id('') and indid select count(1) from
  • DB2数据库,查询库中全部及各数据总条数,方法是使用DB2的系统 1)sysibm.systables select name,card from sysibm.systables ...card:记录总行数, total number of rows;-1 if statistics are n...
  • 对表名、总行数、字段数、非空字段进行统计统计 这些sql不是原创的,但是我懒得去找地址了,就这样吧。 非原创 ------------------------------------------------ ----- 一、对所有的表名和总记录数进行(这段是从...
  • JDBC | 查询表数据行数

    2018-11-03 10:56:00
     利用ResultSet的last和getRow方法来获得ResultSet的总行数,适用于在查询数据的同时统计记录条数。 // sql语句 String sql = "select * from userinfo"; Statement stmt = conn.prepareStatement(s...
  • (5)count:求总行数 求每个部门工资大于一定金额的人数 [sql] view plain copy select EMP_DEP,count(*) from EMPLOYEES where EMP_SALARY>=500 group by EMP_DEP; 3.3、带条件的groub by 字段 having,利用...
  • oracle限制查询-rownum用法详解

    万次阅读 2017-06-09 14:52:03
    对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何的名称作为前缀。 (1) rownum 对于...
  • 一、切换到information_schema数据库 use information_schema; 二、查询数据库中所有 # 查询该库数量 select count(table_name) from TABLES where TABLE_SCHEMA = '...# 查询数据库数据总行数 select sum(table_

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 566
精华内容 226
关键字:

查询表总行数