技术改变生活

博客园 首页 新随笔 联系 订阅 管理

--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;

posted on 2020-11-17 18:53  小阿峰  阅读(169)  评论(0编辑  收藏  举报