最近要写一个对Oracle数据库某用户信息的整理和解析功能,所以顺手整理了一下涉及的查询sql。
一、Oracle表/视图信息以及列信息查询
1. 查询某用户的表和视图
select * from all_tab_comments where owner='你要查的用户'
2. 查询某用户的表的列名以及注释
select * from all_col_comments where owner='你要查的用户'
3. 查询某用户的表的列信息(不含列备注)
select * from all_tab_columns where owner='你要查的用户'
4. 查询当前用户的表和视图
select * from user_tab_comments
5. 查询当前用户的表的列名以及注释
select * from user_col_comments
6. 查询当前用户的表的列信息(不含列备注)
select * from user_tab_columns
7. 查询表的所有列及其属性
select t.*,t2.COMMENTS
from user_tab_columns t,user_col_comments t2
where t.table_name = t2.table_name
and t.column_name = t2.column_name
and t.table_name ='你要查询的表'
8. 查询表定义语句
select
dbms_metadata.get_ddl('TABLE','你要查询的表名','你要查询的用户名')
from dual;
此法查询的表定义语句双引号比较多,看起来不是很清晰。
建议直接PLSQL右键表名–>View SQL查询表的定义。
二、oracle当前用户的表的表名、主键名称、索引、外键查询
1. 查询表的索引(索引列信息和索引信息)
select t.*,t2.*
from user_ind_columns t,user_indexes t2
where t.index_name = t2.index_name
and t.table_name = t2.table_name
and t.table_name = '你要查询的表 '
2. 查询表的主键
select t.*
from user_cons_columns t, user_constraints t2
where t.constraint_name = t2.constraint_name
and t2.constraint_type = 'P'
and t2.table_name = '你要查询的表 '
3. 查询表的外键
3.1 查询外键
select * from user_constraints
where constraint_type = 'R' and table_name = '你要查询的表 '
3.2 查询外键约束的列名
select * from user_cons_columns
where constraint_name = '你要查询的外键名称'
3.3 查询引用表的键的列名
select * from user_cons_columns
where constraint_name ='你要查询的外键引用表的键名'
4. 查找表的唯一性约束
select t.*
from user_cons_columns t, user_constraints t2
where t.constraint_name = t2.constraint_name
and t2.constraint_type = 'U'
and t2.table_name = '你要查询的表 '
三、oracle某用户的包、包体、过程和函数查询
1. 查询某用户所有的包、包体、过程和函数
select * from dba_source
where OWNER='你要查询的用户名'
AND TYPE='PROCEDURE'