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= 查询的表名大写;
-----------------------------------------------------------------------------------------------------------------------
--查询数据文件名及ID
SELECT FILE#, NAME FROM V$DATAFILE;
--查看alert警告,以及oracle给出的处理建议
SELECT REASON, OBJECT_TYPE, SUGGESTED_ACTION FROM DBA_OUTSTANDING_ALERTS;
--列出当前模式下所有外键的报告表
SELECT RPAD(CHILD.TABLE_NAME, 25, ' ') CHILD_TABLENAME,
RPAD(CP.COLUMN_NAME, 17, ' ') REFERRING_COLUMN,
RPAD(PARENT.TABLE_NAME, 25, ' ') PARENT_TABLENAME,
RPAD(PC.COLUMN_NAME, 15, ' ') REFERRED_COLUMN,
RPAD(CHILD.CONSTRAINT_NAME, 25, ' ') CONSTRAINT_NAME FROM USER_CONSTRAINTS CHILD,
USER_CONSTRAINTS PARENT,
USER_CONS_COLUMNS CP,
USER_CONS_COLUMNS PC
WHERE CHILD.CONSTRAINT_TYPE = 'R' AND
CHILD.R_CONSTRAINT_NAME = PARENT.CONSTRAINT_NAME AND
CHILD.CONSTRAINT_NAME = CP.CONSTRAINT_NAME AND
PARENT.CONSTRAINT_NAME = PC.CONSTRAINT_NAME AND
CP.POSITION = PC.POSITION
ORDER BY CHILD.OWNER,
CHILD.TABLE_NAME,
CHILD.CONSTRAINT_NAME,
CP.POSITION;
--查看当前用户所有表对象
SELECT * FROM TAB;
--查看数据库大小、空间使用情况
SELECT B.FILE_ID 文件ID,
B.TABLESPACE_NAME 表空间,
B.FILE_NAME 物理文件名,
B.BYTES 总字节数,
(B.BYTES - SUM(NVL(A.BYTES, 0))) 已使用,
SUM(NVL(A.BYTES, 0)) 剩余,
SUM(NVL(A.BYTES, 0)) / (B.BYTES) * 100 剩余百分比 FROM DBA_FREE_SPACE A,
DBA_DATA_FILES B WHERE A.FILE_ID = B.FILE_ID GROUP BY B.TABLESPACE_NAME,
B.FILE_NAME,
B.FILE_ID,
B.BYTES ORDER BY B.TABLESPACE_NAME;
--查看现有回滚段及其状态
SELECT SEGMENT_NAME, OWNER, TABLESPACE_NAME, SEGMENT_ID, FILE_ID, STATUS
FROM DBA_ROLLBACK_SEGS;
--查看数据文件放置的路径
SELECT TABLESPACE_NAME, FILE_ID, BYTES / 1024 / 1024, FILE_NAME
FROM DBA_DATA_FILES
ORDER BY FILE_ID;
--查看系统日志
SELECT * FROM V$LOG;
--查数据库状态
SELECT STATUS FROM V$INSTANCE;
--ASCII码查询
SELECT CHR(65) FROM DUAL;
SELECT ASCII('A') FROM DUAL;
--查看ip
SELECT SYS_CONTEXT('USERENV', 'IP_ADDRESS') FROM DUAL;
--查看当前user
SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') FROM DUAL;
select user from dual;
-- 查看表各字段属性、长度
select TABLE_NAME,COLUMN_NAME,DATA_TYPE,DATA_LENGTH
from user_tab_columns;
-- 查看某表的各字段ID、长度、类型等信息,可以用来更改表内字段顺序
SELECT * FROM SYS.COL$ WHERE OBJ#=(
SELECT OBJECT_ID FROM All_Objects WHERE object_name='TEST_T1');
--查询当前会话的权限
SELECT * FROM SESSION_PRIVS;
--查询实例名
SELECT instance_name FROM v$instance;
--查询全局数据库名
select name from v$database;
-- 查看各表注释
select * from user_tab_comments;
-- 各表列注释
select * from user_col_comments;
--查看回收站信息
SELECT * FROM USER_RECYCLEBIN;
--查询最近使用的SQL语句
select * from v$sql WHERE rownum<100 ORDER BY last_load_time DESC;
--查询约束关系
select * from ALL_CONSTRAINTS;