数据字典
数据字典是 oracle 的核心
分为两大类
存在于 system 表空间
?$结尾的基本表
Dba_..,all_?.,user_?视图
存在于内存中
X$?..的虚表
V$?的动态性能视图
数据字典是我们建立数据库的时候运行脚本建立的.
%oracle_home% dbmsadmincatalog.sql;脚本当中含有建立数据字典的语句.而 v$的字典是数据库在启动实例的时候初始化的.
数据字典的使用 数据库自己使用字典获得信息 数据库自动保护 我们查看字典来取得数据库的有关信息基本表,是字典得基本表,在建立 system 表空间的时候建立的.
select table_name,owner from dba_tables where table_name like %$ and owner=SYS;
视图,是在建立数据库以后运行 catalog.sql;脚本建立的.
查看哪些字典中含有 TABLE 关键字,1定要大写.
select table_name from dict where table_name like %TABLE%;
查看哪些字典中含有 VIEW 关键字,1定要大写.
select table_name from dict where table_name like %VIEW%;
查看所有的 x和v的表的信息.
SELECT * FROM V$FIXED_TABLE;
3大类视图,**代表可以替换为某个单词.
Dba_*****
All_**** User_****
我们拿 tables 说明上面得含义.
其 中 user_tables 是 查 看 当 前 用 户 所 拥 有 的 表 . all_tables 是 查 看 当 前 用 户 可 以 访 问 的 表 .
dba_tables 是查看当前全部数据库具有的表,但是你得有权限,如果没有权限会报没有这个表.
常见操作
系统用户
1.用来获得数据库初始化参数详细信息
select name from v$parameter where name=lock_sga; show parameter lock_sga;
2.用来查询当前数据库所有控制文件信息
select * from v$controlfile;
3.查询当前数据库所有重作日志文件信息
select * from v$logfile;
4、日志信息
select * from V$log;
5、用来获得当前实例的详细信息
select * from v$instance;
6、获得当前实例中SGA的详细信息
select * from v$sga ;
7.用来查询当前会话信息
select * from v$session; select distinct USERNAME from v$session; kill session altersystem kill session sid,serial#
8、用来查询后台进程的详细信息
select * from v$bgprocess
9、获得当前数据库的详细信息
select name from v$database;
10、查用户、数据文件、表空间
select * from all_users; select name from v$datafile; select name from v$tablespace; 查看用户默许表空间 select default_tablespace,temporary_tablespace from dba_users where username=SCOTT;
1般用户
查看表tab
select * from tab;
查看列col
select * from col where rownum<10;
查看index
select index_name from ind where table_name=EMP;
序列
select * from seq;
视图:
select * from user_views;
查看默许表空间
select username,default_tablespace from user_users;
查看用户下所有的表
SQL>select * from user_tables;
查看表大小
select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=EMP;
查看索引
select index_name,index_type,table_name from user_indexes order by table_name;
select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=EMP_EMP_ID_PK;
查看序号
select * from user_sequences;