Oracle数据字典

Oracle数据库字典介绍
        Oracle数据字典是有表和视图组成的,存储有关数据库结构信息的一些数据库对象。数据库字典描述了实际数据是如何组织的。对它们可以象处理其他数据库表或视图一样进行查询,但不能进行任何修改。


    Oracle数据库字典通常是在创建和安装数据库时被创建的,Oracle数据字典是Oracle数据库系统工作的基础,没有数据字典的支持,Oracle数据库系统就不能进行任何工作。
    在Oracle数据库字典中,许多视图都有三个不同的实例,它们的前缀分别为"USER_"、"ALL_"及"DBA_"。"USER_"为前缀的数据库字典视图通常记录执行查询的帐户所拥有的对象的信息,"ALL_"为前缀的数据库字典视图通常记录包括执行查询的帐户所拥有的对象的信息及授权至PUBLIC的帐户用户所拥有的对象的信息,"DBA_"为前缀的数据库字典视图则包含所有数据库对象的信息,而不管其所有者。其他的字典视图中主要的是V$视图,之所以这样叫是因为他们都是以V$或GV$开头的。V$视图是基于X$虚拟视图的。V$视图是SYS用户所拥有的,在缺省状况下,只有SYS用户和拥有DBA系统权限的用户可以看到所有的视图,没有DBA权限的用户可以看到USER_和ALL_视图,但不能看到DBA_视图。与DBA_,ALL,和USER_视图中面向数据库信息相反,这些视图可视的给出了面向实例的信息。
    在Oracle的绝大多数数据字典视图中都有象DBA_TABLES,ALL_TABLES和USER_TABLES这样的视图家族。Oracle中有超过100个视图家族,下表列出了最重要和最常用的视图家族,需要注意的是每个视图家族都有一个DBA_,一个ALL_一个USER_视图。

视图家族

描述

COL_PRIVS

包含了表的列权限,包括授予者、被授予者和权限

EXTENTS

数据范围信息,比如数据文件,数据段名(segment_name)和大小

INDEXES

索引信息,比如类型、唯一性和被涉及的表

IND_COLUMNS

索引列信息,比如索引上的列的排序方式

OBJECTS

对象信息,比如状态和DDL time

ROLE_PRIVS

角色权限,比如GRANT和ADMIN选项

SEGMENTS

表和索引的数据段信息,比如tablespace和storage

SEQUECNCES

序列信息,比如序列的cache、cycle和ast_number

SOURCE

除触发器之外的所有内置过程、函数、包的源代码

SYNONYMS

别名信息,比如引用的对象和数据库链接db_link

SYS_PRIVS

系统权限,比如grantee、privilege、admin选项

TAB_COLUMNS

表和视图的列信息,包括列的数据类型

TAB_PRIVS

表权限,比如授予者、被授予者和权限

TABLES

表信息,比如表空间(tablespace),存储参数(storage parms)和数据行的数量

TRIGGERS

触发器信息,比如类型、事件、触发体(trigger body)

USERS

用户信息,比如临时的和缺省的表空间

VIEWS

视图信息,包括视图定义


    在Oracle中还有一些不常用的数据字典表,但这些表不是真正的字典家族,他们都是一些重要的单一的视图。这些视图见下表:

视图名称

描述

USER_COL_PRIVS_MADE

用户授予他人的列权限

USER_COL_PRIVS_RECD

用户获得的列权限

USER_TAB_PRIVS_MADE

用户授予他人的表权限

USER_TAB_PRIVS_RECD

用户获得的表权限

Oracle数据库字典的应用
 
借助Oracle数据字典,利用Oracle的DDL语句,我们可以做很多事情,几乎所有的Oracle开发辅助工具都是利用这一点进行设计的。作者将通过如何取得数据库表字段信息来说明。
首先我们定义一个数据库表,数据库表结构如下:

数据库表名[TABLE_TEST]

字段名

数据类型

长度

缺省值

允许空

主键

注释

NAME

VARCHAR2

40

 

N

Y

姓名

SEX

VARCHAR2

1

'Y'

N

 

性别

BIRTHDAY

DATE

0

 

Y

 

生日

HEIGHT

NUMBER

3,1

 

Y

 

身高

WEIGHT

NUMBER

3,1

 

Y

 

体重

MEMO

BLOB

0

 

Y

 

备注

创建表的SQL语句如下
-- 创建数据表
create table TABLE_TEST
(
    NAME varchar2(40) not null,
    SEX varchar2(1) default 'Y' not null,
    BIRTHDAY date not null,
    HEIGHT number(3,2),
    WEIGHT number(3,2),
    MEMO blob
);
-- 给列添加备注
  comment on column TABLE_TEST.NAME is '姓名';
  comment on column TABLE_TEST.SEX is '
性别';
  comment on column TABLE_TEST.BIRTHDAY is '
生日';
  comment on column TABLE_TEST.HEIGHT is '
身高';
  comment on column TABLE_TEST.WEIGHT is '
体重';
  comment on column TABLE_TEST.MEMO is '
备注';-- 创建约束关系 主键 外键 其他
 

alter table TABLE_TEST add constraint TB_TEST_P_NAME primary key (NAME);

数据表创建完毕,执行下列SQL语句:
select
    A.column_name
字段名,A.data_type 数据类型,A.data_length 长度,A.data_precision 整数位,
    A.Data_Scale
小数位,A.nullable 允许空值,A.Data_default 缺省值,B.comments 备注
from
    user_tab_columns A,user_col_comments B
where
    A.Table_Name = B.Table_Name
    and A.Column_Name = B.Column_Name
    and A.Table_Name = 'TABLE_TEST'

我们可以得出一下结果:

字段名
数据类型
长度
整数位
小数位
允许空值
缺省值
备注
NAME
VARCHAR2
40
 
 
N
姓名
SEX
VARCHAR2
1
 
 
N
性别
BIRTHDAY
DATE
7
 
 
N
生日
HEIGHT
NUMBER
22
3
2
Y
身高
WEIGHT
NUMBER
22
3
2
Y
体重
MEMO
BLOB
4000
                    

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-84280/,如需转载,请注明出处,否则将追究法律责任。

user_pic_default.png
请登录后发表评论 登录
全部评论
<%=items[i].createtime%>

<%=items[i].content%>

<%if(items[i].items.items.length) { %>
<%for(var j=0;j
<%=items[i].items.items[j].createtime%> 回复

<%=items[i].items.items[j].username%>   回复   <%=items[i].items.items[j].tousername%><%=items[i].items.items[j].content%>

<%}%> <%if(items[i].items.total > 5) { %>
还有<%=items[i].items.total-5%>条评论 ) data-count=1 data-flag=true>点击查看
<%}%>
<%}%> <%}%>

转载于:http://blog.itpub.net/35489/viewspace-84280/

【实战指南】利用CAN适配器高效调试CAN总线通信 本文提供了一份利用CAN适配器高效调试CAN总线通信的实战指南。文章从硬件连接、终端电阻配置、软件参数设置等基础环节入手,详细解析了CAN适配器作为关键调试工具的工作原理与使用方法,并针对常见的通信故障提供了系统化的问题排查思路,帮助工程师快速打通通信链路,提升调试效率。 阅读详情

相关推荐

oracle修改表结构

使用oracle数据库时修改表结构,创建表空间等等

oracle查视图字段类型,oracle,如何查看视图结构,获得视图中的字段名称、字段类型、字段长度等。...

需要获得一个视图中的字段名称、字段类型、字段长度等信息,该如何编写sql语句。通过select*fromuser_views可以获得给定用户下所有的视图名称了,但是没找到如何获取视图结构的解决方法,求路过的大神解惑。已经解决了。all_tab_cols/all_tab_columns查看所有用户下的表及视图结构user_tab_cols/user_tab_columns查看当前用...

weixin_29809497的博客 5775

oracle 字段查询

查询oracle数据库中单表中所有字段名

oracle查询表结构变更记录表,支持Oracle数据修改备份SQL功能,支持explain,with查询语法,对Oracle表结构和schema显示进行排序,支持sql tuning advisor...

@czxin788权限没细测试过,暂时没环境测试,可以看看archery日志报错,这边是按如下权限授权的grant execute on dbms_logmnr to deploy;grant EXECUTE ANY INDEXTYPE to deploy;grant DROP ANY PROCEDURE to deploy;grant DROP ANY VIEW to deploy;grant ...

weixin_33048721的博客 881

oracle查看表结构的修改记录_MySQL修改表结构

我们在修改表字段类型和约束条件的时候,如果表中的字段已经有值了,但是你修改的这个类型和字段里边的值不匹配是不允许修改的,就比如说你当初设置字段的时候,字段的值是允许存空值,并且字段里边已经存储空值了,但是你后来又要修改这个字段不能存空值,那就会发生冲突,是不允许修改的,还有一个需要注意的是,需要修改的地方写新的,不需要修改的地方要原样的给抄下来,如果不原样抄下来那就恢复到系统给的默认配置我现在要修...

weixin_39789094的博客 4194

什么是Oracle数据字典

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

chen801090的博客 2295

oracle数据字典

前言字典是什么呢?我自己的理解时:就是你知道某样东西的少许信息,但是通过字典你却能获得关于这个东西的详细信息甚至和这样东西有关的东西你都可以查到。那么oracle提供的数据字典,数据是定语,修饰字典这个名词,也就是说oracle数据字典,是提供给需求者一种查询有关oracle数据库数据有关信息的字典。概念是由oracle服务器创建和维护的一组只读的系统表(与审计相关的数据字典除外,这些表是可以修改的

赖源劲的专栏 2503

Oracle系列之二:Oracle数据字典

数据字典(Data Dictionary)是Oracle元数据(Metadata)的存储地点,汇集了数据库对象及数据库运行时需要的基础信息。Oracle RDBMS使用数据字典记录和管理对象信息和安全信息,用户可以通过数据字典获取数据库相关信息,从而进行数据库管理、优化和维护工作。

聚集机器学习、信息安全 3155

oracle数据字典使用,Oracle数据字典的使用方法

数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。被动数据字典是指修改时必须手工更新其内容的数据字典。数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用SQL语句访...

weixin_39884832的博客 566

oracle通过数据字典查看序列,oracle数据字典oracle字典

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

weixin_34861332的博客 1107

Oracle 数据字典数据字典视图

Oracle 数据字典数据字典视图

fsfsdfsdw的博客 4301

Oracle数据字典及相关查询应用

Oracle中的数据字典应用以及相关查询

m0_71406734的博客 6911

oracle数据字典概述

oracle数据字典概述 动态性能表

飞轩亭 2055

oracle 数据字典 输出2,Oracle数据字典的总结

1、什么是数据字典数据字典Oracle服务器创建和维护的一组只读的系统表,存放了有关数据库和数据库对象的信息,Oracle服务器就是依赖这些信息来管理和维护Oracle数据库的。ps:以AUD$开头的数据字典(表)除外,这些表是可以修改的。除此之外,其他所有用户,包括DBA都无法修改数据字典。2、数据字典的分类数据字典分为两大类:一类是基表,还有一类是数据字典视图。Oracle服务器在创建数据...

weixin_32552195的博客 233

oracle数据字典操作

Oracle数据字典概述 数据库是数据的集合,数据库维护和管理这用户的数据,那么这些用户数据表都存在哪里,用户的信息是怎样的,存储这些用户的数据的路径在哪里,这些信息不属于用户的信息,却是数据库维护和管理用户数据的核心,这些信息就是数据库的数据字典来维护的,数据库的数据字典就汇集了这些数据库运行所需要的基础信息叻。每个数据库都提供了各自的数据字典的方案,虽然形式不同,但是目的和作用是一...

165

Oracle】理解数据字典

最近在学习Oracle数据库,Oracle嘛emmmm上手有点难啊哈哈 数据字典的概述 一、概述 Oracle数据库的数据字典是在数据库创建的过程中创建的,由一系列表和视图构成,这些表和视图对于所有的用户(包括DBA),都是只读的。 只有Oracle系统才可以对数据字典进行管理与维护。 在Oracle数据库中,所有数据字典表和视图都属于SYS模式,存储于SYSTEM表空间中。 二、Oracle...

没有感情的代码机器的博客 344

Oracle 数据字典

1.什么是数据字典 (1)Oracle提供了大量的内部表,他们记录了对数据库的更改和修正 按照内部划分两种类型 静态的数据字典表 动态的性能表 (2)、这些内部表是由Oracle维护的,都是只读表。所有用户均不能修改(包括超级用 户),只能查看。 (3)、Oracle数据库字典通常是在建设和安装时被创建的。 2.数据字典内容 数据库中所有模式对象的信息,如表、视图、簇、及索引等...

weixin_45019914的博客 448

oracle数据字典的使用

oracle里为了能记录所有对象的信息,提供了数据字典的概念。 用户级别的数据字典:user_*开头 管理员级别数据字典:dba_*开头 全级别:all_*开头 范例:查询一个用户全部的数据表(user_tables): select * from user_tables; 这个时候会列出数据库表对象的全部信息,包括名称,存储情况 等等。 查询表 select table_name,table...

Angela_L的博客 1041

北京理工大学——应用光学.rar

北京理工大学——应用光学.rar

上一篇: Linux环境下的网络编程
下一篇: sql loader的一点总结
cuixie2370
博客等级 码龄9年 16粉丝 563原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值