最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

Oracle或MySQL查询数据库中各表的行数或大小的SQL语句

数据库 太平洋学习网 浏览 评论

在我们的Oracle或MySQL数据库中,有时候需要查询Oracle或MySQL查询数据库中各表的行数或大小,但是由于我们数据库中的表实在是太多了,因此要一个个的“select count(*)”来比较是不太可能的,于是我们就需要有一些SQL语句能够直接从数据库中查询出每个表的大小或行数分别是多少。

由于Oracle数据库与MySQL数据库不太一样,因此我们需要多Oracle与MySQL分别来进行学习,先来看看在Oracle数据库中如何查询每张表的行数或大小吧!

(一):Oracle数据库中查询各表的行数与大小的SQL语句:

1:我们先来查看一下oracle数据库中,各个数据库表从大到小倒序排列的语句,此语句不显示行数,只显示每张表的大小,“OWNER='ZHANGSAN'”属性表示本数据库的用户名,即所有者,Sql语句如下:

select Owner,Segment_name,Bytes/1024/1024||'M' "Size"
From
Dba_segments
Where
Segment_type='TABLE' and OWNER='ZHANGSAN'
and
Tablespace_name like '%'
Order by Bytes desc ;

查询的效果如图所示,每张表从小到大排列:

image.png

OWNER:所有者

SEGMENT_NAME:表示表名

SIZE:表示大小

2:如果在Oracle数据库中,我们想要查询出各表的行数,则需要使用以下语句查询:

select * from user_tables t where t.NUM_ROWS is not  null  order by t.NUM_ROWS  desc

查询出来的效果如图所示:

image.pngimage.png

TABLE_NAME:表示表名

NUM_ROWS:表示表行数

(二):MySQL数据库中查询每张表的行数

1:如果在mysql数据库中想要查询各表的行数,如果你是命令行中的话,直接运行下面的sql语句即可,如果你使用的是Navcat查询工具的话,需要在“information_schema”下运行以下sql语句才行:

select table_name,table_rows from tables
where TABLE_SCHEMA = 'test'
order by table_rows desc;

效果如图所示,语句中的TABLE_SCHEMA=‘test 表示需要查询的数据库名为test的数据库:

image.png

2:如果想要查看mysql某个数据库下所有表的数据总条数,则使用如下sql语句,但仍然需要在“information_schema”下运行sql语句:

use information_schema; //如果是在“information_schema”下,则此条语句可省略,只要下面这一个sql语句
select sum(TABLE_ROWS) from tables where TABLE_SCHEMA = 'test';

效果如图,总条数是12条:

image.png

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/mysql_oracle/2018/1222/818.html

    与本文相关的文章

    发表我的评论
    取消评论

    表情

    您的回复是我们的动力!

    • 昵称 (必填)

    网友最新评论