Oracle中的数据字典

数据字典
数据字典是oracle存放有关数据库信息的地方,几乎所有的系统信息和对象信息都可在数据字典中进行查询。数据字典是oracle数据库系统的信息核心,它是一组提供有关数据库信息的表和视图的集合,这些表和视图是只读的。它是随着数据库的建立而建立的,当数据库执行特定动作时数据字典也会自动更新。数据一览与数据字典来记录、校验和管理正在进行的操作。
oracle中、sys用户是数据字典的拥有者,数据字典保证在所有数据库的系统表空间system内,任何用户都无权更改sys模式下的模式对象或数据字典中的行。也就是说数据字典只能查询,不能手动进行修改。

包括:
基本表:描述数据库信息,只 能由数据库服务器进行修改
用户表:用户自定义表

数据字典命名规则

前缀说明
USER用户自己的
ALL用户可以访问的
DBA管理员视图
V$性能相关的数据

如何使用数据字典视图
从DICTIONARY开始,这个数据对象包含了数据字典的表名和说明

DESCRIBE DICTIONARY

SELECT *
FROM   dictionary
WHERE  table_name = 'USER_OBJECTS';

USER_OBJECTS 和ALL_OBJECTS
USER_OBJECTS:
通过查询USER_OBJECTS可以确定当前用户所有创建的对象
可以获得如下信息:
Date created
Date of last modification
Status (valid or invalid)

SELECT object_name, object_type, created, status
FROM   user_objects
ORDER BY object_type;

ALL_OBJECTS:
可以通过查询ALL_OBJECTS来确定当前用户能访问的数据对象

表的信息

DESCRIBE user_tables

SELECT table_name
FROM   user_tables;

列的信息

DESCRIBE user_tab_columns

SELECT column_name, data_type, data_length,
       data_precision, data_scale, nullable
FROM   user_tab_columns
WHERE  table_name = 'EMPLOYEES'; 

约束
USER_CONSTRAINTS:当前用户表上的约束
USER_CONS_COLUMNS 当前用户创建的列约束

DESCRIBE user_constraints

SELECT constraint_name, constraint_type,
       search_condition, r_constraint_name, 
       delete_rule, status
FROM   user_constraints
WHERE  table_name = 'EMPLOYEES'; 


DESCRIBE user_cons_columns

SELECT constraint_name, column_name
FROM   user_cons_columns
WHERE  table_name = 'EMPLOYEES'; 

视图

DESCRIBE user_views

SELECT DISTINCT view_name FROM user_views;

SELECT text FROM user_views 
WHERE view_name = 'EMP_DETAILS_VIEW';

序列

DESCRIBE user_sequences

通过USER_SEQUENCES查询序列信息

SELECT  sequence_name, min_value, max_value, 
    increment_by, last_number
FROM    user_sequences;

LAST_NUMBER表示当没有使用NOCAHCE时,下一个可用的值

同义词

DESCRIBE user_synonyms

SELECT * 
FROM   user_synonyms;

给表添加注释
使用COMMENT语句给表或者列,添加注释:

COMMENT ON TABLE employees
IS 'Employee Information';

注释相关的视图:
ALL_COL_COMMENTS
USER_COL_COMMENTS
ALL_TAB_COMMENTS
USER_TAB_COMMENTS
查询表的注释
select * from user_tab_comments where table_name= ‘???’;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值