數據字典
數據字典是 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;