--查询表及表中记录数
丰都网站建设公司创新互联,丰都网站设计制作,有大型网站制作公司丰富经验。已为丰都上千多家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的丰都做网站的公司定做!
select TABLE_NAME,NUM_ROWS,OWNER
from dba_all_tables
where owner=用户名 and NUM_ROWS1000
order by num_rows desc
可以找出指定用户的数据量大于1000条的数据表。执行该语句需要有dba权限
1、查看表空间的大小,首先我们要登录到oracle数据库,我们要使用管理员的身份登录,因为管理员的权限要相对的大一些。
2、登录到数据库之后,我们要在侧边栏找到dataspace这个文件夹,这个文件夹下存放的就是我们管理员可以管理的所有的表空间的名称。
3、根据dataspace文件夹下的内容名称,选择我们想要看的表空间,使用右键点击的方式,选择右键显示中的属性按钮。
4、进入到属性表之后,我们可以看到当前表空间的许多属性,其中有个属性叫做segment space management的选项,当这个选项的值为auto的时候,表示当前表空间是可以自增长的,否则就是固定大小的。
觉得你应该先弄清楚oracle的常规数据字典的结构,像9i里的常规数据字典中对象名称就有以USER,ALL,DBA为前缀的对象。
以USER为例,我们查该对象下有些什么表,就应该执行下列的语句:
SQLselect table_name from user_tables;
类似的,你可以进行替换。:)
如果你想查数据库中所有的表的话,可以查询
SELECT * FROM dba_tables
如果你想查询数据库中某个用户下的表的话,也可以登录这个用户,再查询:
SELECT * FROM USER_TABLES
要想导入外部sql语句可以用命令
sql @e:\文件名.sql
如你想保存 select * from tablename;语句的结果,可以在sql*plus 里面这样:
SPOOL c:\test.sql //这是保存文件的位置
select * from tablename;
SPOOL OFF
有两种含义的表大小。一种是分配给一个表的物理空间数量,而不管空间是否被使用。可以这样查询获得字节数:
select segment_name, bytes
from user_segments
where segment_type = 'TABLE';
或者
Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name
另一种表实际使用的空间。这样查询:
analyze table emp compute statistics;
select num_rows * avg_row_len
from user_tables
where table_name = 'EMP';
查看每个表空间的大小
Select Tablespace_Name,Sum(bytes)/1024/1024 From Dba_Segments Group By Tablespace_Name
1、本文以plsql图形化管理工具为例,使用它连接oracle数据库。当点开plsql的时候,就需要输入用户名、密码、数据库然后连接。如果连接成功,就能查看里面的表等等操作,如果连接不成功,就输入正确的信息再次尝试。
2、连接上数据库之后,默认会看到这个主界面。顶部是各种操作菜单,左侧第一个框是最近打开的一些信息,第二个框里面的才是数据库的所有信息。
3、如果不想看到这么多的框,只想专注于数据库的相关信息,就可以将其他框关闭或者隐藏,这两种方式只是点击不同的按钮而已,具体参见截图。
4、在oracle数据库中,用户是属于表空间的,因此,当使用某一个用户登录之后,看到的其实就是这个用户默认的表空间中的信息。这个时候,可以展开【Tables】菜单,就能看到当前表空间下的所有表,如果表的数量不多,就可以直接一个一个的数出数量。
5、如果当前用户具有管理员权限,还可以在【Tablespaces】菜单下面,找到所有的表空间名称,在每个表空间名称下面还有【Tables】菜单,这里面会显示这个表空间下面的所有用户和表。
注意,对于同一个表空间下的相同数据库,在这里会显示每个用户都拥有一套表结构
6、如果想直接获得表空间中的表数量,可以点击左上角的新建图标,选择【SQLWindow】,右侧就会出现一个空白的SQL语句书写窗口
7、获取指定表空间下表数量(这是包含了此表空间下的所有用户的表)
selectcount(1)fromall_tableswheretablespace_name='表空间名称';获取指定表空间下,指定用户的表数量。
selectcount(1)fromall_tableswheretablespace_name='表空间名称'andowner='用户名称';如果将count(1)换成星号,就可以查询表空间下的所有表名信息等。
可用如下语句查看:
select round(BYTES/1024/1024,2)||'M' from user_segments where segment_name='表名';
注意:表名需要用英文大写。
如要查询数据库中emp表的大小,用如下语句:
select round(BYTES/1024/1024,2)||'M' from user_segments where segment_name='EMP';
查询结果:
查询结果代表EMP表所占空间大小为0.06M。