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);
下面全面是对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
开头 v
开头vdatabase 数据库信息
v
d
a
t
a
f
i
l
e
数
据
文
件
信
息
v
datafile 数据文件信息 v
datafile数据文件信息vcontrolfile 控制文件信息
v
l
o
g
f
i
l
e
重
做
日
志
信
息
v
logfile 重做日志信息 v
logfile重做日志信息vinstance 数据库实例信息
v
l
o
g
日
志
组
信
息
v
log 日志组信息 v
log日志组信息vloghist 日志历史信息
v
s
g
a
数
据
库
S
G
A
信
息
v
sga 数据库SGA信息 v
sga数据库SGA信息vparameter 初始化参数信息
v
p
r
o
c
e
s
s
数
据
库
服
务
器
进
程
信
息
v
process 数据库服务器进程信息 v
process数据库服务器进程信息vbgprocess 数据库后台进程信息
v
c
o
n
t
r
o
l
f
i
l
e
r
e
c
o
r
d
s
e
c
t
i
o
n
控
制
文
件
记
载
的
各
部
分
信
息
v
controlfile_record_section 控制文件记载的各部分信息 v
controlfilerecordsection控制文件记载的各部分信息vthread 线程信息
v
d
a
t
a
f
i
l
e
h
e
a
d
e
r
数
据
文
件
头
所
记
载
的
信
息
v
datafile_header 数据文件头所记载的信息 v
datafileheader数据文件头所记载的信息varchived_log 归档日志信息
v
a
r
c
h
i
v
e
d
e
s
t
归
档
日
志
的
设
置
信
息
v
archive_dest 归档日志的设置信息 v
archivedest归档日志的设置信息vlogmnr_contents 归档日志分析的DML DDL结果信息
v
l
o
g
m
n
r
d
i
c
t
i
o
n
a
r
y
日
志
分
析
的
字
典
文
件
信
息
v
logmnr_dictionary 日志分析的字典文件信息 v
logmnrdictionary日志分析的字典文件信息vlogmnr_logs 日志分析的日志列表信息
v
t
a
b
l
e
s
p
a
c
e
表
空
间
信
息
v
tablespace 表空间信息 v
tablespace表空间信息vtempfile 临时文件信息
v
f
i
l
e
s
t
a
t
数
据
文
件
的
I
/
O
统
计
信
息
v
filestat 数据文件的I/O统计信息 v
filestat数据文件的I/O统计信息vundostat Undo数据信息
v
r
o
l
l
n
a
m
e
在
线
回
滚
段
信
息
v
rollname 在线回滚段信息 v
rollname在线回滚段信息vsession 会话信息
v
t
r
a
n
s
a
c
t
i
o
n
事
务
信
息
v
transaction 事务信息 v
transaction事务信息vrollstat 回滚段统计信息
v
p
w
f
i
l
e
u
s
e
r
s
特
权
用
户
信
息
v
pwfile_users 特权用户信息 v
pwfileusers特权用户信息vsqlarea 当前查询过的sql语句访问过的资源及相关的信息
v
s
q
l
与
v
sql 与v
sql与vsqlarea基本相同的相关信息
v$sysstat 数据库系统状态信息
all_开头
all_users 数据库所有用户的信息
all_objects 数据库所有的对象的信息
all_def_audit_opts 所有默认的审计设置信息
all_tables 所有的表对象信息
all_indexes 所有的数据库对象索引的信息
session_开头
session_roles 会话的角色信息
session_privs 会话的权限信息
index_开头
index_stats 索引的设置和存储信息
伪表
dual 系统伪列表信息Oracle基于SQL几个常用的几个系统表
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