📅  最后修改于: 2023-12-03 15:18:09.807000             🧑  作者: Mango
在Oracle数据库中,表空间是存储和组织数据库对象的逻辑结构。表空间包含了表、索引、视图、序列等对象。这里介绍如何通过SQL语句查询表空间中所有表的列表。
SELECT
owner,
table_name,
tablespace_name,
num_rows,
bytes/1024/1024 size_mb
FROM
all_tables
WHERE
owner NOT IN ('SYS', 'SYSTEM')
ORDER BY
owner,
table_name;
owner
: 表拥有者,也就是创建表的用户table_name
: 表名tablespace_name
: 表空间名num_rows
: 表中的行数size_mb
: 表的大小(单位:MB)这个SQL语句会将所有非系统表的owner、table_name、tablespace_name、num_rows和size_mb列输出,按owner和table_name排序。
| owner | table_name | tablespace_name | num_rows | size_mb | |-------|------------|----------------|----------|---------| | HR | EMPLOYEES | USERS | 107 | 1.5 | | HR | JOBS | USERS | 19 | 0.2 | | HR | JOB_HISTORY| USERS | 10 | 0.1 | | HR | DEPARTMENTS| USERS | 4 | 0.1 | | OE | ORDERS | SALES | 165558 | 20.8 | | OE | ORDER_ITEMS| SALES | 1077308 | 139.7 |
以上结果显示了表空间中非系统表的owner、table_name、tablespace_name、num_rows以及size_mb列。每行代表一个表,显示了它的所有属性。
通过以上SQL语句,我们可以轻松获得表空间中所有非系统表的列表和其相关信息,例如表名、拥有者、空间大小等。这对于数据库管理员和相关人员来说都是很有用的。