下面全面是對Oracle系統表的一些介紹: 數據字典dict總是屬於Oracle用戶sys的。
1、用戶:
select username from dba_users;
改口令
alter user spgroup identified by spgtest;
2、表空間:
select * from dba_data_files;
select * from dba_tablespaces;//表空間
select tablespace_name,sum(bytes), sum(blocks)
from dba_free_space group by tablespace_name;//空閑表空間
select * from dba_data_files
where tablespace_name='RBS';//表空間對應的數據文件
select * from dba_segments
where tablespace_name='INDEXS';
3、數據庫對象:
select * from dba_objects;
CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、
PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。
4、表:
select * from dba_tables;
analyze my_table compute statistics;->dba_tables后6列
select extent_id,bytes from dba_extents
where segment_name='CUSTOMERS' and segment_type='TABLE'
order by extent_id;//表使用的extent的信息。segment_type='ROLLBACK'查看回滾段的空間分配信息
列信息:
select distinct table_name
from user_tab_columns
where column_name='SO_TYPE_ID';
5、索引:
select * from dba_indexes;//索引,包括主鍵索引
select * from dba_ind_columns;//索引列
select i.index_name,i.uniqueness,c.column_name
from user_indexes i,user_ind_columns c
where i.index_name=c.index_name
and i.table_name ='ACC_NBR';//聯接使用
6、序列:
select * from dba_sequences;
7、視圖:
select * from dba_views;
select * from all_views;
text 可用於查詢視圖生成的腳本
8、聚簇:
select * from dba_clusters;
9、快照:
select * from dba_snapshots;
快照、分區應存在相應的表空間。
10、同義詞:
select * from dba_synonyms
where table_owner='SPGROUP';
//if owner is PUBLIC,then the synonyms is a public synonym.
if owner is one of users,then the synonyms is a private synonym.
11、數據庫鏈:
select * from dba_db_links;
在spbase下建數據庫鏈
create database link dbl_spnew
connect to spnew identified by spnew using 'jhhx';
insert into acc_nbr@dbl_spnew
select * from acc_nbr where nxx_nbr='237' and line_nbr='8888';
12、觸發器:
select * from dba_trigers;
存儲過程,函數從dba_objects查找。
其文本:select text from user_source where name='BOOK_SP_EXAMPLE';
建立出錯:select * from user_errors;
oracle總是將存儲過程,函數等軟件放在SYSTEM表空間。
13、約束:
(1)約束是和表關聯的,可在create table或alter table table_name add/drop/modify來建立、修改、刪除約束。
可以臨時禁止約束,如:
alter table book_example
disable constraint book_example_1;
alter table book_example
enable constraint book_example_1;
(2)主鍵和外鍵被稱為表約束,而not null和unique之類的約束被稱為列約束。通常將主鍵和外鍵作為單獨的命名約束放在字段列表下面,而列約束可放在列定義的同一行,這樣更具有可讀性。
(3)列約束可從表定義看出,即describe;表約束即主鍵和外鍵,可從dba_constraints和dba_cons_columns 查。
select * from user_constraints
where table_name='BOOK_EXAMPLE';
select owner,CONSTRAINT_NAME,TABLE_NAME
from user_constraints
where constraint_type='R'
order by table_name;
(4)定義約束可以無名(系統自動生成約束名)和自己定義約束名(特別是主鍵、外鍵)
如:create table book_example
(identifier number not null);
create table book_example
(identifier number constranit book_example_1 not null);
dba_開頭.....
dba_users 數據庫用戶信息
dba_segments 表段信息
dba_extents 數據區信息
dba_objects 數據庫對象信息
dba_tablespaces 數據庫表空間信息
dba_data_files 數據文件設置信息
dba_temp_files 臨時數據文件信息
dba_rollback_segs 回滾段信息
dba_ts_quotas 用戶表空間配額信息
dba_free_space數據庫空閑空間信息
dba_profiles 數據庫用戶資源限制信息
dba_sys_privs 用戶的系統權限信息
dba_tab_privs用戶具有的對象權限信息
dba_col_privs用戶具有的列對象權限信息
dba_role_privs用戶具有的角色信息
dba_audit_trail審計跟蹤記錄信息
dba_stmt_audit_opts審計設置信息
dba_audit_object 對象審計結果信息
dba_audit_session會話審計結果信息
dba_indexes用戶模式的索引信息
user_開頭
user_objects 用戶對象信息
user_source 數據庫用戶的所有資源對象信息
user_segments 用戶的表段信息
user_tables 用戶的表對象信息
user_tab_columns 用戶的表列信息
user_constraints 用戶的對象約束信息
user_sys_privs 當前用戶的系統權限信息
user_tab_privs 當前用戶的對象權限信息
user_col_privs 當前用戶的表列權限信息
user_role_privs 當前用戶的角色權限信息
user_indexes 用戶的索引信息
user_ind_columns用戶的索引對應的表列信息
user_cons_columns 用戶的約束對應的表列信息
user_clusters 用戶的所有簇信息
user_clu_columns 用戶的簇所包含的內容信息
user_cluster_hash_expressions 散列簇的信息
v$開頭
v$database 數據庫信息
v$datafile 數據文件信息
v$controlfile控制文件信息
v$logfile 重做日志信息
v$instance 數據庫實例信息
v$log 日志組信息
v$loghist 日志歷史信息
v$sga 數據庫SGA信息
v$parameter 初始化參數信息
v$process 數據庫服務器進程信息
v$bgprocess 數據庫后台進程信息
v$controlfile_record_section 控制文件記載的各部分信息
v$thread 線程信息
v$datafile_header 數據文件頭所記載的信息
v$archived_log歸檔日志信息
v$archive_dest 歸檔日志的設置信息
v$logmnr_contents 歸檔日志分析的DML DDL結果信息
v$logmnr_dictionary 日志分析的字典文件信息
v$logmnr_logs 日志分析的日志列表信息
v$tablespace 表空間信息
v$tempfile 臨時文件信息
v$filestat 數據文件的I/O統計信息
v$undostat Undo數據信息
v$rollname 在線回滾段信息
v$session 會話信息
v$transaction 事務信息
v$rollstat 回滾段統計信息
v$pwfile_users 特權用戶信息
v$sqlarea 當前查詢過的sql語句訪問過的資源及相關的信息
v$sql 與v$sqlarea基本相同的相關信息
v$sysstat 數據庫系統狀態信息
all_開頭
all_users 數據庫所有用戶的信息
all_objects 數據庫所有的對象的信息
all_def_audit_opts 所有默認的審計設置信息
all_tables 所有的表對象信息
all_indexes所有的數據庫對象索引的信息
session_開頭
session_roles 會話的角色信息
session_privs 會話的權限信息
index_開頭
index_stats 索引的設置和存儲信息
偽表
dual 系統偽列表信息
1、sysobjects
系統對象表。 保存當前數據庫的對象,如約束、默認值、日志、規則、存儲過程等
sysobjects 重要字段解釋:
sysObjects (
Name sysname, ——object 名稱
id int, ——object id
xtype char(2), —— object 類型
type char(2), —— Object 類型(與xtype 似乎一模一樣? 有點郁悶…)
uid smallint, —— object 所有者的ID
…… ——其他的字段不常用到。
)
注:需要解釋的是 xtype 和type 是一模一樣的,他的數據為:
C = CHECK 約束
D = 默認值或 DEFAULT 約束
F = FOREIGN KEY 約束
FN = 標量函數
IF = 內嵌表函數
K = PRIMARY KEY 或 UNIQUE 約束
L = 日志
P = 存儲過程
R = 規則
RF = 復制篩選存儲過程
S = 系統表
TF = 表函數
TR = 觸發器
U = 用戶表
V = 視圖
X = 擴展存儲過程
該表中包含該數據庫中的所有對象,如有那些表 存儲過程 視圖 等信息
2、sysColumns 數據庫字段表。 當前數據庫的所有字段都保留在里面。
重要字段解釋:
sysColumns (
name sysname, ——字段名稱
id int, ——該字段所屬的表的ID
xtype tinyInt, ——該字段類型,關聯sysTypes表
length smallint, ——該字段物理存儲長度
……
)
比如要查詢某一個張表的有那些字段和這些字段的長度
3、sysUsers
當前數據庫的系統組,以及用戶。
sysUsers(
uid smallint, ——用戶id
name smallint , ——名稱
uid varbinary(85) , ——屬於一個登陸
……
)
對數據庫的用戶進行管理
4、sysdenpends
當前數據庫的依賴關系。 比如我要修改某一張的結構時,怕修改后會影響到其它的視圖 函數 存儲過程 ,這是在修改之前可以查詢一下。那些視圖 函數 存儲過程調用了這個表的這樣在修改后就可以修改的視圖 函數 存儲過程,
一般程序員用到的系統表,基本也就這幾個, 其他的特殊的系統表(主要都在master 或者 tempdb )里面了 .
一個有用的例子:(查詢表的創建者)
SELECT owner FROM DBA_ALL_TABLES WHERE table_name=upper('表名');
Oracle數據庫的系統參數都存儲在數據庫中,可以通過SQLPLUS,以用戶SYSYTEM進行查詢。
1.幾個重要的表或者視圖如下:
v$controlfile:控制文件的信息;
v$datafile:數據文件的信息;
v$log:日志文件的信息;
v$process:處理器的信息;
v$session:會話信息;
v$transaction:事務信息;
v$resource:資源信息;
v$sga:系統全局區的信息。
上面的視圖名中的‘v$’,只是視圖名字中的字符。類似於上面的視圖或表還有很多,位於:
$ORACLE_HOME/RDBMS/ADMIN/CATALOG.SQL文件中。
這些視圖或表可以在SQLPLUS中用SELECT語句進行查詢。
2.數據字典視圖
表和列
DBA_TABLES、ALL_TABLES和USER_TABLES顯示了有關數據庫表的一般信息。
DBA_TAB_COLUMNS、ALL_TAB_COLUMNS和USER_TAB_COLUMNS顯示了每個數據庫表的列的信息。
注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS顯示了模式對象的信息,包括表。
完整性約束
DBA_CONSTRAINTS、ALL_CONSTRAINTS和USER_CONSTRAINST顯示有關約束的一般信息。
DBA_CONS_COL