统计多张表的数据总量

用到的概念叫做临时表:

1.简单理解

  临时表就是一张在内存中临时创建的一张表 来展现我们的数据

2.官方解释:

MySQL 临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。

临时表在MySQL 3.23版本中添加,如果你的MySQL版本低于 3.23版本就无法使用MySQL的临时表。不过现在一般很少有再使用这么低版本的MySQL数据库服务了。

MySQL临时表只在当前连接可见,如果你使用PHP脚本来创建MySQL临时表,那每当PHP脚本执行完成后,该临时表也会自动销毁。

如果你使用了其他MySQL客户端程序连接MySQL数据库服务器来创建临时表,那么只有在关闭客户端程序时才会销毁临时表,当然你也可以手动销毁。

查询一个库中多张表的数据总量

 1 DROP TEMPORARY TABLE IF EXISTS dataCount;
 2
 3 -- 创建数量统计临时表
 4 CREATE TEMPORARY TABLE dataCount(
 5     altalsCount INT,
 6     classCount INT,
 7     girlCOunt INT,
 8     orgCount INT,
 9     photoCont INT
10 );
11 -- 插入数据
12 INSERT INTO dataCount
13 (altalsCount,classCount,girlCount,orgCount,photoCont)
14 VALUES
15 (
16 (SELECT COUNT(*)  FROM `altals`),
17 (SELECT COUNT(*)  FROM `class`),
18 (SELECT COUNT(*)  FROM `girl` ),
19 (SELECT COUNT(*)  FROM `orgnation`),
20 (SELECT COUNT(*)  FROM `photo`));
21
22 -- 查看
23 SELECT
24 altalsCount as ‘图集数量‘,
25 classCount as ‘分类数量‘,
26 girlCOunt as ‘美女数量‘,
27 orgCount as ‘机构数量‘,
28 photoCont as ‘图片数量‘
29
30 FROM dataCount;

结果:

原文地址:https://www.cnblogs.com/codezhao/p/11141550.html

时间: 2024-11-09 03:42:09

统计多张表的数据总量的相关文章

mysql统计一张表中条目个数的方法

统计一张表中条目的个通常的SQL语句是: select count(*) from tableName; #or select count(1) from tableName; #or 统计一个列项,如ID select count(ID) 另外,可通过使用information_schema统计个数 MySQL中有一个名为 information_schema 的数据库,在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHEMA : 数据库名 TABLE_NAME:表名

复制一张表的数据到另一张表,jq.grid里面有时间类型数据时展示不了数据

1.复制一张表的数据到另一张表 insert into jct_sys_lock_tbl_new  (BGN_DT, END_DT, TYPE, DESCR, flag, format, range, count)  select BGN_DT, END_DT, TYPE, DESCR, flag, format, range, count    from jct_sys_lock_tbl 也可以: insert into jct_sys_lock_tbl_new  select *    fr

Oracle两张表关联批量更新其中一张表的数据

Oracle两张表关联批量更新其中一张表的数据 方法一(推荐): UPDATE 表2 SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A) WHERE EXISTS (SELECT 1 FROM 表1 WHERE 表1.A = 表2.A); 尤其注意最后的外层where条件尤为重要,是锁定其批量更新数据的范围. 方法二: MERGE INTO 表2 USING 表1 ON (表2.A = 表1.A) -- 条件是 A 相同 WHEN MATCHED TH

多张表中数据组合后插入新表的方法

以mysql为例. 遇到这个问题的时候最先想到的方法就是先从各个表中查询出相应的数据后使用程序循环遍历组装后在插入到数据库中.这是最直观的解决办法,但是这个方法处理超大结果集的时候就出现问题,例如:超出内存限制,运行时间过长等等... 这时使用另外一种方法应该会有帮助,那就是使用mysql的on duplicate key update方法来分步骤组合数据. 现在有3张表a,b,c.每个表的结构如下: a表包含字段:id,a,b,c: b表包含字段:aID,d,e,f:字段aID对应表a中的id

inserted触发器,一张表插入数据时,同时向另外一张表插入数据

有时候,一个服务器上有多个数据库,需要向其中一个数据库的表中插入数据时, 同时向另外一个数据的表里插入数据. 可以利用触发器和同义词(建立同义词的方法省略), 在一个数据库的表里插入数据时,同时向另外一个数据库的表里插入数据. 触发器代码如下: create trigger userInsertTrigger on [user] for insert as begin begin insert into usertab(UserID,UserAccount,UserPassword,UserNa

取得一张表的数据不在另一张表中的最优秀方法(JOIN与EXISTS的效率研究)

业务需求: 公司有个CRM经纪人管理系统,前天遇到的比较棘手的问题是,要查询一张表中不在另一张表中的所有用户并分页显示,但问题是外表的数据量很大,如果用not in(select ..),not exists(select ...)之类的子查询 的话需要对子查询表进行所有信息的调用过滤才行,一单子查询数据量过大效率问题就来了,于是就私下里查了一点资料,并根据资料中提供的例子建立了对应的测试表做了一些测试,随后将解决问题的方法移交给了技术部的邹鸿同事去解决问题,因为是前天的事情了,本来是事情忙没时

在oracle中怎么把一张表的数据插入到另一张表中

把table2表的数据插入到table1中 insert   into   table1   select   *   from   table2

Oracle将两张表的数据插入第三张表且第三张表中不存在

1.由于是先查再插所以不能使用insert into table1() values(), 要使用insert into table1() select * table2,不能使用values. 2.因为是多张表故查询和插入的时候需要指定是哪张表,否则会报错:指定列模糊. 3.三张表联查时可多次使用inner join等连接语法. 总结:在逻辑上SQL与Code实现基本一致,但是SQL的速度非常快,在具体实现上SQL需要非常强的逻辑性但是会省去很多写code的功夫. insert into SP

用现有表往另一张表插数据

设有A表:create table A(int  id,varchar(10)  name, varchar(1) gender) 有B表:create table B(int  id,varchar(10)  name, varchar(1) gender, int money, int tax) 特点:B表结构是A表结构 多了几个字段 情景零:将A表完全复制(结构+数据) create table C  as select *  from A 情景一:将 A 表中的数据全部复制到B表中,指定