Oracle的数据字典是Oracle数据库的重要组成部分之一,它随着Oracle的版本升级产生者不断的
变化。体现为不同用户下的一些表和视图。需要留意的是,数据字典的名称是大写的英文字符。它存
放着用户信息,用户的权限信息,所有的数据对象的信息,表的约束条件,相关视图等等。
下面是Sql语句对于数据字典的相关操作,权当练手了!
/*查看详细信息*/
SELECT *FROM user_users;
/*查看权限信息*/
SELECT *FROM role_sys_privs;
/*查看用户角色信息*/
SELECT *FROM user_role_privs;
/*2、查询和索引有关的数据字典*/
SELECT *FROM Dictionary WHERE instr(comments,'index')>0;
SELECT *FROM user_indexes;
/*3、一条sql查询用户的名字以及其默认的表空间*/
SELECT username ,
default_tablespace
FROM user_users;
/*Tips:用户名以及表空间信息存储在user_users这个视图中*/
/*4、查看系统权限和表级权限*/
SELECT *
FROM user_SYS_privs;
SELECT *FROM user_tab_privs;
/*5、查看用户下所有的表*/
SELECT *FROM user_tables;
SELECT *FROM cat;
/*6查看包含指定字符的表的名字*/
SELECT *FROM User_Objects WHERE instr(object_name,'E')>0;
SELECT *FROM User_Tables WHERE instr(user_tables.Table_Name,'E') >0;
/*Tips:前者查询的是对象,因此一般查询到的内容会多一些*/
/*7、查询某个表的创建时间*/
SELECT object_name,
created
FROM User_Objects
WHERE object_name=upper('&table_name');
/*8、查询某个表的空间大小*/
SELECT SUM(bytes)/(1024*1024) AS "size(M)"
FROM User_Segments
WHERE segment_name=upper('&table_name2') ;
/*9与索引相关的操作*/
--查看索引的种类。名字,以及索引的表
SELECT User_Indexes.Index_Name,
index_type,
User_Indexes.Table_Name
FROM User_Indexes;
--查看索引被索引的字段
SELECT *
FROM user_ind_columns
WHERE index_name=upper('&index_name');
/*10、与数据库有关的sql操作*/
--查看表空间的名称大小
SELECT t.tablespace_name,
ROUND(SUM(bytes/(1024*1024)),0) ts_size
FROM dba_tablespaces t,
dba_data_files d
WHERE t.tablespace_name = d.tablespace_name
GROUP BY t.tablespace_name;
--查看表空间的物理文件的名称以及大小
SELECT tablespace_name,
file_id,
file_name,
ROUND(bytes/(1024*1024),0) total_space
FROM dba_data_files
ORDER BY tablespace_name;
--查看控制文件和日志文件
SELECT name FROM V&Controlfile;
SELECT member FROM V&Logfile;
好了,Over!