系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 数据库 > Mysql > 详细页面

什么是Oracle的数据字典?

时间:2020-07-17来源:www.pcxitongcheng.com作者:电脑系统城

数据字典是oracle存放有关数据库信息的地方,几乎所有的系统信息和对象信息都可在数据字典中进行查询。数据字典是oracle数据库系统的信息核心,它是一组提供有关数据库信息的表和视图的集合,这些表和视图是只读的。它是随着数据库的建立而建立的,当数据库执行特定动作时数据字典也会自动更新。数据一览与数据字典来记录、校验和管理正在进行的操作。

Oracle中,sys用户是数据字典的拥有者,数据字典保证在所有数据库的系统表空间system内,任何用户都无权更改sys模式下的模式对象或数据字典中的行。也就是说数据字典只能查询,不能手动进行修改。

一、数据字典用途

Oracle通过存取数据字典从而比较方便地获取有关用户某事对象和存储结构等信息。当系统执行了DDL语句后,oracle会及时修改数据字典。任何用户只能以读的形式使用数据字典获取数据库信息。

二、数据字典存储的信息

  • 数据用户的名称
  • 为用户授予的权限和角色
  • 模式对象的名。
  • 完整性约束的具体信息;
  • 每个字段的默认值;
  • 数据库空间的使用情况;
  • 存储审计的信息
  • 对象与用户的严格管理(适用于高度机密管理);
  • 其他一般数据库信息

三、四种前缀的数据字典视图

  • user_ :任何用户都可以读取的视图,每个用户读取的都不一样,它只提供当前用户某事下的对象信息。
如查询当前模式下的所有对象:
select object_name, object_type from user_objects;
  • all_ :所有用户都可读取的用户视图,它提供与用户有关的对象信息。
1
2
如查询当前用户可访问的所有对象:
select owner, object_name, object_type from all_objects;
  • dba_:提供了只有数据库管理员才可读取的视图,包括所有用户视图中的对象信息。
1
2
如:
select owner, object_name, object_type from sys.dba_objects;
  • v$:动态性能视图

动态性能视图用于记录当前例程的活动信息,当启动oracle server时,系统会建立动态性能视图;当停止oracle server时,系统会删除动态性能视图,oracle的所有动态性能视图都是以v_$开始的,并且oracle为每个动态性能视图都提供例了相应的同义词,并且同义词是以v$开始的,例如_$datefile的同义词为v$datefile;动态性能视图的所有者为sys,一般情况下,由DBA或是特权用户来查询动态性能视图。

 

四、查询数据字典示例

  • 查询用户相关的数据字典
1
2
3
4
5
6
7
8
9
10
11
12
13
查询用户
select username from dba_users; -- 只有管理员权限的用户才能查询
select username from all_users; -- 当前或任何用户都可使用
 
-- 查看当前用户的默认表空间
select username, default_tablespace from user_users;
 
--当前用户角色
select from user_role_privs;
 
-- 当前用户的系统权限和表级权限
select from user_sys_privs;
select from user_tab_privs;
  • 查询表空间相关的数据字典(拥有DBA权限的用户才能查询)
1
2
3
4
5
6
7
8
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='USERS'-- 表空间对于的数据文件
select from dba_segments where tablespace_name='USERS';
 
--查询用户模式对象所使用过的正在使用空间大小
select name, type, source_size, code_size from user_object_size;
  • 查询数据库对象(拥有DBA权限的用户才能查询)
1
2
3
select from dba_objects
select from dba_objects where object_type = upper('package body');
select from dba_objects where OBJECT_TYPE='TABLE' and OWNER='SCOTT'
分享到:

相关信息

  • MySQL的核心查询语句详解

    一、单表查询 1、排序 2、聚合函数 3、分组 4、limit 二、SQL约束 1、主键约束 2、非空约束 3、唯一约束 4、外键约束 5、默认值 三、多表查询 1、内连接 1)隐式内连接: 2)显式内连接: 2、外连接 1)左外连接 2)右外连接 四...

    2023-10-30

  • Mysql中如何删除表重复数据

    Mysql删除表重复数据 表里存在唯一主键 没有主键时删除重复数据 Mysql删除表中重复数据并保留一条 准备一张表 用的是mysql8 大家自行更改 创建表并添加四条相同的数据...

    2023-10-30

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载