数据库中字符串尽量用单引号!!!


Oracle中查看所有的表:

select * from tab/dba_tables/dba_objects/cat;

查看用户建立的表 :  
selecttable_name from user_tables;  //当前用户的表
selecttable_name from all_tables;  //所有用户的表
selecttable_name from dba_tables;  //包括系统表
select* from user_indexes //可以查询出所有的用户表索引
查看所有用户的表在all_tables
主键名称、外键在all_constraints
索引在all_indexes

但主键也会成为索引,所以主键也会在all_indexes里面。


具体需要的字段可以DESC下这几个view,dba登陆的话可以把all换成dba


1、查找表的所有索引(包括索引名,类型,构成列):

select uic.*,ui.index_type from user_ind_columns uic,user_indexes ui

where uic.index_name = ui.index_name and uic.table_name = ui.table_name and uic.table_name = 表名大写;


2、查找表的主键(包括名称,构成列):

select constraint_name from user_constraints c where c.CONSTRAINT_TYPE='P' //约束类型大写

and c.table_name='STUDENT_INFO';(注意表名大写)


3、查找表的唯一性约束(包括名称,构成列):
select column_name,uc.constraint_name from user_cons_columns ucc, user_constraints uc
where ucc.constraint_name = uc.constraint_name
and uc.constraint_type ='U'
and uc.table_name = 'STUDENT_INFO';


4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):

select uc.constraint_name,column_name from user_constraints uc,user_cons_columns ucc
where uc.CONSTRAINT_NAME=ucc.CONSTRAINT_NAME
and uc.CONSTRAINT_TYPE='R'
and uc.table_name='STUDENT_INFO';


查询外键约束的列名:

select * from user_cons_columns u where u.constraint_name = 外键名称大写;


查询引用表的键的列名:

select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名;


5、查询表的所有列及其属性

select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c wheret.table_name = c.table_name and t.column_name = c.column_name and t.table_name= 查询的表名大写;



案例

--查看用户表--
select * from user_tables;


--查看表的外键--
select   u.constraint_name from user_constraints u
where u.CONSTRAINT_TYPE='R'
and u.table_name='STUDENT_INFO';


--查看表的主键--
select uc.constraint_name,ucc.column_name from user_constraints uc,user_cons_columns ucc
where uc.CONSTRAINT_NAME=ucc.CONSTRAINT_NAME
and uc.CONSTRAINT_TYPE='P'
and uc.TABLE_NAME='STUDENT_INFO';


--查看表的索引--
select index_name from user_indexes u where u.TABLE_NAME='HOTEL';


--查看表的序列--
select sequence_name from user_sequences u;


--查看唯一性约束--
select constraint_name from user_constraints u where u.CONSTRAINT_TYPE='U'
and u.table_name='HOTEL';