`
lovnet
  • 浏览: 6711619 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

数据字典(Data Dictionary)

 
阅读更多

字典顾名思义就像我们现实中用的字典一样,当某个字或词不懂时就去查字典.字典中装载着我们使用的语言信息.数据据也像一个字典一样装载着很多数据信息.

字典里存贮数据库结构信息.比如我们经常用到的关于数据库对象table,view,index,triger,sequence,synonym等的信息.

数据字典就是些表和视图,跟用户自己创建的表和视图没啥两样.只是它由系统创建,所以保存在SYS用户下.

数据字典的表都是以$结尾.

比如表tab$保存所有用户创建的表的信息,表user$保存用户名和密码信息.补充:为了安全起见,这表里的信息自然是非常重要的.即使是拥有

最高权限的SYS用户虽然能查看这个表,但表里的用户名密码都是用MD5加密的,所以看到的只是密文.因此理论上来说在Oracle里面是永远看不到用户名密码的.但是

我们有修改密码的仅限.可以在不知道之前密码的情况下重置密码.

不过我们基本上不会直接去访问表,而是访问根据表生成的视图.

视图有三种DBA_XXX, ALL_XXX,USER_XXX

以USER_为前缀的视图里有当前用户所拥有的对象的信息

以ALL_为前缀的视图里有当前用户所能访问的对象的信息,有些对象是属于其他用户,但你有访问权限.

以DBA_为前缀的视图里有数据库中所有对象的的信息.

很容易看到三者的关系.USER视图是ALL视图的子集,ALL视图是DBA视图的子集.

下面的讲解中我只以USER视图为例.因为USER视图里有的信息ALL视图,DBA视图里都会有.只要把视图前缀名改下就行.

数据字典中常用的视图:

1.表相关视图:

user_tables 有用户所有表的信息

user_all_tables 包含的信息比user_tables多一点点.就是包含对象表的信息,即表中有自定义对象类型的表.

user_tab_columns 用户的表列信息.例如要查找表arwen中所有列的信息SELECT * FROM user_tab_columns WHERE table_name='ARWEN';

2.视图相关视图:

user_views

3.索引相关视图

user_indexes(同义词IND) 用户的索引信息.

user_ind_columns 用户的索引对应的表列信息

4.约束条件相关视图

user_constraints 用户的对象约束信息 :如查找表arwen中有哪些约束条件:SELECT * FROM user_constraints WHERE table_name='ARWEN';

注意CONSTRAINT TYPE都是简写的n,u,p,f,c分别对应not null,unique,primary key,foreign key,check

user_cons_columns 用户的约束对应的表列信息

5.同义词相关视图:

user_synonym(同义词SYN)

6.序列相关视图:

user_sequence(同义词SEQ)

7.目录相关视图:

dba_directories (不管任何用户创建dir后貌似owner都是sys用户了.所以也不能用user_directories查找)

Oracle中如果要访问操作系统中的某个目录不能直接访问.必须要根据目录建立一个directory对象,然后用使用directory对象.

例如CREATE DIRECTORY temp_dir AS c:\temp;

8.触发器相关视图:

user_triggers

9.所有对象相关视图

user_catalog 当前用户所有表,视图,同义词,序列的信息

user_tables 当前用户所有表的信息

user_objects有用户所有对象的信息.user_catalog相当于它的子集.

8.权限相关的视图

user_sys_privs 当前用户的系统权限信息 :比如创建表的权限啊,创建新用户的权限啊

user_tab_privs 当前用户的对象权限信息:对其他用户的对象的读写执行权限

user_col_privs除了可以赋予其他用户访问某个表的权限外,还可以更细一步赋予访问表中某一列的权限.这个视图包括自己赋予其他用户访问某列的权限和别人赋予自己访问某列的权限.

user_role_privs当前用户的角色权限信息 每个角色有相应的一些权限.有时为简单的赋予权限,先创建一个角色然后添加相应权限.再把角色赋予给某些用户.

使用数据字典的简单方法

上面提到的视图名字还只是一小部分,已经是够难记住的了,如果是全部更没法记住了.不过不用担心,Oracle把数据字典所有视图的信息保存在一个叫DICTIONARY的视图中.它还有个同义词DICT.

它相当于是字典的字典了.它只有两列:table_name,comments.注意table_name不要顾名思义以前就是表名,实际上它是所有视图的名字,就是上面提到的以user_,all_,dba_为前缀的视图.而真正的表反而不包括在内.comments就是描述信息,说明那个视图干嘛用的.

如果你想查找跟table有关的信息,但不知道有哪些数据字典有表的信息.你就可以这样查SELECT * FROM DICTIONARY WHERE table_name LIKE '%TABLE%';这样查找的结果还是很多,你就真加个限定条件前缀USER_

SELECT * FROM DICTIONARY WHERE table_name LIKE '%USER_%TABLE%';

你会看到user_tables,接下来你再查找user_tables就可以了解跟表有关的信息了.

所以你只要记住DICT这个视图,再加上会在where语句中加些条件进行模糊查询就行了.

分享到:
评论

相关推荐

    DataDictionary(数据字典工具)

    查看数据库数据字典,包括表、视图、索引、存储过程等内容; 支持SQL Server和Oracle两大商业数据库; 能将数据字典导出为Html、XML、Word等文件格式; 免费注册、免费使用; 没有注册,会定时弹出About窗口。

    数据字典(Data dictionary)

    数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。被动数据字典是指修改时必须手工...

    Data dictionary for oracle 2.0

    Data dictionary for oracle(数据字典)是一款可查看ORACLE数据字典的工具。

    金蝶K3 CLOUD数据字典

    K3Cloud数据字典K3Cloud Data Dictionary,非常全面实用,是从事金蝶开发的技术人员不可缺少的金蝶CLOUD工具

    ORACLE数据字典(很实用,很适合DBA、开发运维人员、大学生)

    数据字典(data dictionary)是对于数据模型中的数据对象或者项目的描述的集合

    EAS8.5数据字典

    数据字典(data dictionary)是对于数据模型中的数据对象或者项目的描述的集合,这样做有利于程序员和其他需要参考的人。分析一个用户交换的对象系统的第一步就是去辨别每一个对象,以及它与其他对象之间的关系。这...

    SAP数据字典文档

    SAP Data Dictionary/数据字典相关说明文档

    金蝶EAS数据字典8.2版本

    数据字典(data dictionary)是对于数据模型中的数据对象或者项目的描述的集合,这样做有利于程序员和其他需要参考的人。分析一个用户交换的对象系统的第一步就是去辨别每一个对象,以及它与其他对象之间的关系。

    数据字典,开发新手可以观看

    数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。被动数据字典是指修改时必须手工...

    mysql.zip||mysql数据字典生成工具||mysql Data dictionary generation tool

    端口:3306,用户名:root,密码:123456 | | root两个版本 golang build,gitee地址https://github.com/viodo/db-doc 你可以自己定义

    CodeSmith 创建数据字典 模板

    Create_Data_Dictionary.cst CodeSmith 创建数据字典 模板 注意:可以在SQL Server 企业管理器中,将“描述”字段的信息写上,这样,用CodeSmith生成的HTML文件将会有“描述”信息。 非常好用! HTML随便你拷贝,...

    ORACLE中数据字典的使用方法

    数据字典(Datadictionary)是一种用户可以访问的记录数据库和应用程序元数据的目 录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动 更新的数据字典。被动数据字典是指修改时必须手工...

    金蝶EAS数据字典7.0.3版本

    数据字典(data dictionary)是对于数据模型中的数据对象或者项目的描述的集合,这样做有利于程序员和其他需要参考的人。分析一个用户交换的对象系统的第一步就是去辨别每一个对象,以及它与其他对象之间的关系。

    Data Dictionary

    生成数据字典,可以列出用户自己想要的内容,自动产生格式。简单实用

    ICESAT/GLAS GLAH01 Product Data Dictionary.pdf

    ICESAT/GLAS GLAH01 Product 数据字典

    SQL实验六 Oracle数据字典和ODBC

    数据字典(data dictionary)是存储在数据库中的所有对象信息的知识库。Oracle RDBMS使用数据字典获取对象信息和安全信息,而用户和DBA用它来查阅数据库信息。数据字典是只读的,终端用户和DBA通常使用的是建立在...

    Linq2sql 数据字典提取器for.net3.5/4.0

    Linq2sql 数据字典提取器说明 用途:本软件主要用于从Linq to sql类中,提取数据字典。 本文档将由浅入深,逐步介绍其使用方法。 一、 直接使用。 1、 选择linq 2 sql类所在的dll或者exe。 2、 选择data context...

    dicom-data-dictionary:DICOM数据字典JavaScript库

    dicom-data-dictionary DICOM数据字典JavaScript库 关于 该库的目的是提供DICOM数据字典功能。 当前,它仅提供来自未知版本的DICOM标准的一组标准标签。 请参阅积压,以了解将来要添加的一些想法-欢迎提出请求! ...

    data-dictionary:数据库字典,MySQL数据库字典

    data-dictionary Mysql Database Dictionary - 简单易用的Mysql数据库字典程序 A Vue.js project 使用 复制 dist 目录到开发环境中 生成数据库字典文件需要 php 环境, 请留意 修改 dist/data/initdata.php 中的 ...

    dicom-data-dictionary:DICOM 数据字典 JavaScript 库

    dicom-data-dictionary DICOM 数据字典 JavaScript 库 关于 这个库的目的是提供 DICOM 数据字典功能。 目前它只提供一组来自未知版本的 DICOM 标准的标准标签。 有关将来要添加的内容的一些想法,请参阅 backlog - ...

Global site tag (gtag.js) - Google Analytics