数据字典
数据字典是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= ‘???’;
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/4237.html