oracle怎么查询所有的表?有没有主键?

如题所述

1、查找表的所有索引(包括索引名,类型,构成列):\x0d\x0a\x0d\x0aselectt.*,i.index_typefromuser_ind_columnst,user_indexesiwheret.index_name=i.index_nameandt.table_name=i.table_nameandt.table_name=要查询的表\x0d\x0a\x0d\x0a2、查找表的主键(包括名称,构成列):\x0d\x0a\x0d\x0aselectcu.*fromuser_cons_columnscu,user_constraintsauwherecu.constraint_name=au.constraint_nameandau.constraint_type='P'andau.table_name=要查询的表\x0d\x0a\x0d\x0a3、查找表的唯一性约束(包括名称,构成列):\x0d\x0a\x0d\x0aselectcolumn_namefromuser_cons_columnscu,user_constraintsauwherecu.constraint_name=au.constraint_nameandau.constraint_type='U'andau.table_name=要查询的表\x0d\x0a\x0d\x0a4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):\x0d\x0a\x0d\x0aselect*fromuser_constraintscwherec.constraint_type='R'andc.table_name=要查询的表\x0d\x0a\x0d\x0a查询外键约束的列名:\x0d\x0a\x0d\x0aselect*fromuser_cons_columnsclwherecl.constraint_name=外键名称\x0d\x0a\x0d\x0a查询引用表的键的列名:\x0d\x0a\x0d\x0aselect*fromuser_cons_columnsclwherecl.constraint_name=外键引用表的键名\x0d\x0a\x0d\x0a5、查询表的所有列及其属性\x0d\x0a\x0d\x0aselectt.*,c.COMMENTSfromuser_tab_columnst,user_col_commentscwheret.table_name=c.table_nameandt.column_name=c.column_nameandt.table_name=要查询的表\x0d\x0a\x0d\x0a6、Oracle中每个用户表的表名和行数\x0d\x0aselecttable_name,num_rowsfromuser_tables;\x0d\x0a\x0d\x0a7、Oracle查询用户表空间:select*fromuser_all_tables\x0d\x0a\x0d\x0a8、Oracle查询所有函数和储存过程:select*fromuser_source\x0d\x0a\x0d\x0a9、Oracle查询所有用户:\x0d\x0aselect*fromall_users;\x0d\x0aselect*fromdba_users\x0d\x0a\x0d\x0a10、Oracle查看当前用户连接:select*fromv$Session\x0d\x0a\x0d\x0a11、Oracle查看当前用户权限:select*fromsession_privs\x0d\x0a\x0d\x0a12、Oracle查看用户表空间使用情况:\x0d\x0a\x0d\x0aselecta.file_id"FileNo",a.tablespace_name\x0d\x0a\x0d\x0a"Tablespace_name",\x0d\x0a\x0d\x0aa.bytes"Bytes",a.bytes-sum(nvl(b.bytes,0))"Used",\x0d\x0a\x0d\x0asum(nvl(b.bytes,0))"Free",\x0d\x0a\x0d\x0asum(nvl(b.bytes,0))/a.bytes*100"%free"\x0d\x0a\x0d\x0afromdba_data_filesa,dba_free_spaceb\x0d\x0a\x0d\x0awherea.file_id=b.file_id(+)\x0d\x0a\x0d\x0agroupbya.tablespace_name,\x0d\x0a\x0d\x0aa.file_id,a.bytesorderbya.tablespace_name;
温馨提示:答案为网友推荐,仅供参考
相似回答