--Oracle查看表空间大小(单位不是GB)
SELECT
a.tablespace_name, --表空间名
total, --表空间大小
free, --表空间剩余大小
(total-free), --表空间使用大小
Round((total-free)/total,4)*100 --使用率
FROM (SELECT tablespace_name,Sum(bytes) free
FROM DBA_FREE_SPACE
GROUP BY tablespace_name) a,
(SELECT tablespace_name,Sum(bytes) total
FROM DBA_DATA_FILES
GROUP BY tablespace_name)b
WHERE
a.tablespace_name=b.tablespace_name;
--Oracle查看表空间当前用户
select username,default_tablespace
from user_users;
--Oracle查看表所属表空间
SELECT TABLE_NAME,TABLESPACE_NAME
FROM USER_TABLES
WHERE TABLE_NAME='test_table';
--Oracle查看表空间大小-单位GB
SELECT
a.tablespace_name,
total,
free,
(total-free),
total/(1024*1024*1024),
free/(1024*1024*1024),
(total-free)/(1024*1024*1024),
round((total-free)/total,4)*100
FROM (SELECT tablespace_name,SUM(bytes) free
FROM dba_free_space
GROUP BY tablespace_name)a,
(SELECT tablespace_name,SUM(bytes) total
FROM dba_data_files
GROUP BY tablespace_name)b
WHERE a.tablespace_name=b.tablespace_name;
--查看数据库表空间名称
select file_name, tablespace_name ,bytes from dba_data_files;
点击这里 | 点击这里 | 点击这里 | 点击这里 |
---|---|---|---|
FILE_NAME | TABLESPACE_NAME | BYTES | |
1 | /oracledata/orcl/users01.dbf | USERS | 82575360 |
2 | /oracledata/orcl/sysaux01.dbf | SYSAUX | 429916160 |
3 | /oracledata/orcl/undot2.dbf | UNDOTV2 | 1761607680 |
4 | /oracledata/orcl/system01.dbf | SYSTEM | 597688320 |
5 | /oracledata/orcl/emsc01.dbf | EMSC | 629145600 |
6 | /oracledata/orcl/seal01.dbf | SEAL | 524288000 |
9 | /oracledata/orcl/E:ORACLEORADATAORCLhnsap.dbf | HNSAPSPACE1 | 1153433600 |
--查看数据库所有的表名称和每张表所对应的数据条数
select t.table_name ,t.num_rows from user_tables t;
点击这里 | 点击这里 | 点击这里 |
---|---|---|
TABLE_NAME | NUM_ROWS | |
1 | CLIENT_SOFT_UPDATE_RECORD | 278 |
2 | MDENCE_STAMP | 0 |
3 | TD_P_ROLE | 0 |
4 | TD_X_STAFF | 5 |
5 | PORC_EXECUTE_RECORD | 2185 |
6 | CLIENT_GROUP_BINDING | 79 |
7 | CLIENT_SOFT_UPDATE | 19 |
8 | AUDIT_DAY_AMOUNT | 22 |
9 | AUDIT_DAY_BWS_DETAIL | 97 |
10 | AUDIT_HELLY_DAY | 0 |
11 | AUDIT_HELLY_DETAIL | 0 |
12 | AUDIT_RULE | 3496 |
13 | AUDIT_RULE_ORG | 874 |
14 | ID_CARD_INFO | 417 |
15 | BILL_USER_CHECK_INFO | 4268 |
17 | BUSINESS_DICT | 0 |
18 | BUSINESS_INFO | 946 |
1.查询所有数据库
由于Oralce没有库名,只有表空间,所以Oracle没有提供数据库名称查询支持,只提供了表空间名称查询。
select * from v$tablespace; --查询表空间(需要一定权限)
2.查询当前数据库中所有表名
select * from user_tables;
3.查询指定表中的所有字段名
select column_name from user_tab_columns where table_name = 'table_name'; --表名要全大写
4.查询指定表中的所有字段名和字段类型
select column_name, data_type from user_tab_columns where table_name = 'table_name'; --表名要全大写
在Oracle中DBA_users、ALL_users以及USER_users的区别
DBA_*意为DBA拥有的或可以访问的所有的对象。
ALL_*意为某一用户拥有的或可以访问的所有的对象。
USER_*意为某一用户所拥有的所有的对象。
1.查看所有用户:
select * from dba_users;
select * from all_users;
select * from user_users;
2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):
select * from dba_sys_privs;
select * from user_sys_privs; (查看当前用户所拥有的权限)
3.查看角色(只能查看登陆用户拥有的角色)所包含的权限
sql>select * from role_sys_privs;
4.查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
5.查看所有角色:
select * from dba_roles;
6.查看用户或角色所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;
7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)
select * from V$PWFILE_USERS
8.SqlPlus中查看一个用户所拥有权限
SQL>select * from dba_sys_privs where grantee='username';
其中的username即用户名要大写才行。
比如:
SQL>select * from dba_sys_privs where grantee='TOM';
9、Oracle删除指定用户所有表的方法
select 'Drop table '||table_name||';' from all_tables
where owner='要删除的用户名(注意要大写)';
10、删除用户
drop user user_name cascade;
如:drop user SMCHANNEL CASCADE
11、获取当前用户下所有的表:select table_name from user_tables;
12、删除某用户下所有的表数据: select 'truncate table ' || table_name from user_tables;