1.dba_users --查询数据库用户信息(一般可以查询到该用户是否上了锁)
SELECT username,account_status FROM dba_users WHERE username = 'yourname'; --查询某个用户的状态
ALTER USER username ACCOUNT UNLOCK IDENTIFIED BY password; --解锁用户并修改密码
2.user_tables --存放用户表信息
SELECT table_name FROM user_tables; --查询某个用户的所有表
3.dba_objects 数据库对象表 oracle 数据库里所有都是对象
owner
object_name
object_type: table|index|sequence|rule|procedure|package|view|...
status: valid|invalid
4.v$version 版本
5.v$session 会话
select sid,username,schemaname
from v$session
;
6.v$mystat (对v$mystat,v$sesstat,v$statname视图进行操作,可以取得sql产生的redo信息)
1).v$mystat,v$sesstat是用来分别统计会话级别和自实例起动以来数据库各种统计信息的。
两个视图结构一致,只是统计数据不一致。
desc v$mystat;
名称 是否为空? 类型
----------------------------------------------------- -------- ----------------
SID NUMBER
STATISTIC# NUMBER
VALUE NUMBER
SID表示会话编号,与v$session中SID相对应。
STATISTIC# 表示统计项
VALUE 表示统计项相关的值
v$mystat视图中只会有当前用户的会话信息,v$sesstat会有整个实例内所有会话信息。因此在v$sesstat中自然包括v&mystat的统计信息。
2).一般情况下v$mystat,v$sesstat会与v$statname一起配合使用。
SQL> desc v$statname;
Name Type Nullable Default Comments
---------- ------------ -------- ------- --------
STATISTIC# NUMBER Y
NAME VARCHAR2(64) Y
CLASS NUMBER Y
v$statname视图中STATISTIC#与v$mystat,v$sesstat中STATISTIC#字段是相关联的。而NAME则是对应的英文信息,比如说要查某条DML语句所产生的redo信息。可以这样写:
select value
from v$mystat t,v$statname t1
where t.STATISTIC# = t1.STATISTIC#
and t1.NAME = 'redo size'
;
其它信息也是如此,只需将t1.name换成相对应的英文名称即可。
7.dba_tab_columns
--查看列的默认值
select owner,table_name,column_name,data_type,data_length,data_default
from dba_tab_columns
where owner = 'SCOTT'
and table_name = 'EMP'
;
8.dba_constraints 表级约束
select OWNER,
TABLE_NAME,
CONSTRAINT_NAME,
CONSTRAINT_TYPE,
STATUS,
VALIDATED,
R_OWNER,
R_CONSTRAINT_NAME
from dba_constraints
where owner = 'SCOTT'
and table_name = 'EMP'
;
9.dba_cons_columns 列级约束
select OWNER,
CONSTRAINT_NAME,
TABLE_NAME,
COLUMN_NAME,
POSITION
from dba_cons_columns
where owner = 'SCOTT'
and table_name = 'EMP'
;