DBA权限下可以查询dba_tables,里面有个num_rows列
在古塔等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、网站制作 网站设计制作按需策划设计,公司网站建设,企业网站建设,品牌网站设计,成都全网营销推广,成都外贸网站建设公司,古塔网站建设费用合理。
select table_name,num_rows from dba_tables where ...;
条件可以根据自己需要来加
num_rows列并不是实时更新的,1小时更新一次。
扩展资料:
Oracle数据库常用sql语句:
一,INSERT (往数据表里插入记录的语句)
INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……);
INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名;
二,DELETE (删除数据表里记录的语句)
DELETE FROM表名 WHERE 条件;
三,UPDATE (修改数据表里记录的语句)
UPDATE表名 SET 字段名1=值1, 字段名2=值2, …… WHERE 条件;
四,改变表的名称
ALTER TABLE 表名1 TO 表名2;
五,在表的后面增加一个字段
ALTER TABLE表名 ADD 字段名 字段名描述;
六,修改表里字段的定义描述
ALTER TABLE表名 MODIFY字段名 字段名描述;
参考资料:百度百科:Oracle数据库
select * from (select a.*,a.rownum as roid from table a order by 2 desc/asc )bwhere b.roid between 10 and 20这是ORACLE的写法,在子查询里可以根据你所需要的字段进行排序,然后选取10-20的或者别的你所需要的数据,其中rownum为关键字,所以需要在子查询里定义别名,然后在外层才能引用这个排序键值
统计每行多少个“/”多少个空格:
SELECT perid,pername,
decode(D1,null,1,0)+decode(D2,null,1,0)+decode(D3,null,1,0)+decode(D4,null,1,0)+decode(D5,null,1,0)+decode(D6,null,1,0)+decode(D7,null,1,0)+decode(D8,null,1,0)+decode(D9,null,1,0)+decode(D10,null,1,0) D1_NULL ,
decode(D1,'/',1,0)+decode(D2,'/',1,0)+decode(D3,'/',1,0)+decode(D4,'/',1,0)+decode(D5,'/',1,0)+decode(D6,'/',1,0)+decode(D7,'/',1,0)+decode(D8,'/',1,0)+decode(D9,'/',1,0)+decode(D10,'/',1,0) D1_1
FROM TABLE_NAME
你的这个表有主键没?
如果有主键,假设你的这个表的主键是sid
那么可以使用
select count(sid) from tablename
来查询会比你用count(*) 要快的多。使用主键字段会用到主键索引,会比你去扫描整个表要快的多。
oracle 里面统计某个表的数据行的数量只有使用count函数来求。如果数据量非常大你应该考虑把你的历史数据给清理掉或者使用分区表 。
可以从表user_tables中查询。
select
sum(num_rows)
from
user_tables
;
就是显示用户所有表的行数其中num_rows是每个表的行数,用sum加总一下,就是当前用户所有表的
总行
数。
但因为user_tables中的数据不是
实时
统计,会有时间差,所以以上Sql统计得到的结果与实际会存在一定
误差
。
某个用户的表的表名从数据字典表 user_tables 可以查到,虽然 user_tables 数据字典中也有表的行数 NUM_ROWS 字段,但除非你对该用户进行统计信息收集(运行 dbms_stat.gather_schema_stats()系统包)否则该字段要么没有值,要么值是过期的数据,不准确. 正确的做法是:对数据库用户进行统计信息收集后,立刻执行:
select table_name,num_rows from user_tables;