Oracle 数据字典详解

Oracle 数据字典详解

什么叫数据字典?

数据字典指的是描述数据的数据。
举个例子:我们在数据库里面创建了一个表,这个表位于哪个数据文件、这个表有哪些列、这个表的每一个列的数据类型、这个表的约束等等。这些信息都是描述这个表的,这些信息也存放在一些表中,这些表就是数据字典,数据字典中的数据描述的是整个数据库的各种各样的信息。

数据字典概述

数据字典由两部分组成

  1. 数据字典基本表;
  2. 数据字典视图;
数据字典基本表

和普通的表没有什么区别,只不过里面存放的是数据字典数据create database的时候,调用sql.bsp脚本,数据字典基本表的创建就是通过这个脚本实现的,这些数据字典基本表的所有者是sys,这些数据字典基本表存放在system表空间中。

数据字典基本表中的信息非常难懂,而且非常的重要、一致性非常的复杂,因此千万不要使用dml语句直接去数据字典基本表。

创建数据字典基本表的sql.bsp脚本在$ORACLE_HOME/rdbms/admin下,通过这个脚本,我们发现大多数的数据字典基本表是以$结尾的。

数据字典视图
  • 列名含义清楚;
  • 视图隐藏了基本表之间的复杂关系;
  • 数据字典视图的所有者是sys;
  • oracle还为所有的数据字典视图建立了公共的同义词,这样用户就可以通过别名来访问数据字典视图;
  • 数据字典视图和同义词通过catalog.sql来建立;
  • 数据库内建的存储过程通过catproc.sql来建立;

总结一句话,我们最主要的工作就是通过数据字典视图和同义词来访问数据字典。

数据字典视图分类:

  • DBA_:包含整个数据库范围内的对象的信息,例如DBA_TABLES包括了数据库范围内所有表的信息,用户具有一定的权限才能查看这个视图。
  • ALL_:当前登录用户有权限查看的对象的信息,例如ALL_TABLES包括了当前用户有权限查看的所有表的信息。
  • USER_:当前登录用户所拥有的对象的信息,例如USER_TABLES包括了当前用户拥有的所有表的信息。

以下是DBA用户查询表信息情况

SQL> select count(*) from dba_tables;
  COUNT(*)
----------
      4942
SQL> select count(*) from all_tables;
  COUNT(*)
----------
      4942
SQL> select count(*) from user_tables;

  COUNT(*)
----------
      1014
SQL> 

数据字典视图的查找

数据字典视图非常的多,该怎么样去查找呢?
有一个视图,通过这个视图可以查找所有的数据字典视图,这个视图就是dictionary,这个视图的同义词是dict。

SQL> desc dict;
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 TABLE_NAME					    VARCHAR2(30)
 COMMENTS					    VARCHAR2(4000)
SQL> 

注意:数据字典视图最经典的用法是使用别人已经写好的一些查询,在紧急情况下不要埋头造轮子。

动态性能视图

有一些数据,例如内存中的数据、控制文件中的数据,oracle以表的方式展现这些数据。这些数据并没有存在实际的表中,只是以表的形式展现出来,因此是一些虚拟的表。

数据库在运行、控制文件和内存中的数据在不断地变化,那么动态性能视图中的数据也在不停的变化,数据库重新启动以后,动态性能视图中的数据全部丢失。

所有的动态性能视图的名称都存放在v$fixed_table里面。动态性能视图的名字都是以v_$开始的,属主是sys。

oracle为每一个动态性能视图提供了一个同义词,都以v$开头,例如v$session。

扫码关注醒狮运维公众号,及时了解更多安全漏洞信息及运维知识!
在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醒狮运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值