重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
精确的只能 select count(*) from user1 这样的语句
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了王益免费建站欢迎大家使用!
粗略的考虑 select t.table_name ,t.num_runs from user_tables t where t.table_name like 'USER%' ;为了增加准确性,可以在查询之前收集一下统计信息。
可以通过district来取出字段,之后通过count计算总数量。
sql:select count(district id) from tablename;
如果id字段没有空值的话,可以通过count统计字段的总数量(字段内容可能重复)。
sql:select count(id) from tablename;
在oracle10g中统计所有表的数据量可以使用如下语句:
select sum(NUM_ROWS) from dba_tables where owner like 'SCHEMA';
说明一下,以上语句必须用dba账户登录才可以使用,其中的SCHEMA参数就是当前用户名。
chema为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,schema里面包含了各种对象如tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links。
一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema。这也就是我们在企业管理器的方案下看到schema名都为数据库用户名的原因。
最简单的理解:以你计算机的用户为例,如果你的计算机有3个用户,那么每个用户登录系统看到的(使用的)功能是可以不相同的!
1、创建测试表;
create table test_type_num(type varchar2(20),cardNo varchar2(20),orgName varchar2(20));
2、插入测试数据;
insert into test_type_num values('1','201103','日本');
insert into test_type_num values('1','201104','中国');
insert into test_type_num values('2','201105','中国');
insert into test_type_num values('2','201106','中国');
insert into test_type_num values('2','201107','日本');
commit;
3、查询表中全量数据;select t.*, rowid from test_type_num t;
4、编写语句,统计同一类型的记录的条数;
select t.*, count(1) over(partition by type, orgname) cnt from test_type_num t ;
如果是oracle9i版本,可以考虑如下两步实现:
(10g直接执行第二步就可以了)
统计一个用户下所有表的行数:
1.exec
dbms_stats.gather_schema_stats(owner='用户名');
2.select
sum(num_rows)
from
user_tables;
统计全库所有表的行数:
1.exec
dbms_stats.gather_database_stats(estimate_percent='30');
2.select
sum(num_rows)
from
dba_tables;
生产环境中需谨慎考虑收集新的统计信息后对应用产生的影响。
方法和详细的操作步骤如下:
1、第一步,查询该库中的所有表,测试sql,代码见下图,转到下面的步骤。
2、第二步,执行完上面的操作之后,查询有多少个数据表,见下图,转到下面的步骤。
3、第三步,执行完上面的操作之后,在TEST的开头编写一个查询表的脚本,每个表中的记录数,代码见下图,转到下面的步骤。
4、第四步,执行完上面的操作之后,执行sql,在输出窗口中,可以看到每个表的输出,见下图。这样,就解决了这个问题了。