Oracle元数据简介及常见应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle元数据简介及常见应用

-

元数据简介

元数据(metadata) 最常见的定义为"有关数据的结构数据",或者再简单一点就是"关于数据的信息",日常生活中的图例、图书馆目录卡和名片等都可以看作是元数据。在关系型数据库管理系统(DBMS) 中,元数据描述了数据的结构和意义。比如在管理、维护SQL Server 或者是开发数据库应用程序的时候,我们经常要获取一些涉及到数据库架构的信息:

某个数据库中的表和视图的个数以及名称;

某个表或者视图中列的个数以及每一列的名称、数据类型、长度、精度、描述等;

某个表上定义的约束;

某个表上定义的索引以及主键/外键的信息。

下面我们将介绍几种获取元数据的方法。

=========================获得元数据=============================

创建表,并给表和字段加上描述

CREATE TABLE MANTIS_CODE(

ID V ARCHAR2(32) NOT NULL,

NAME V ARCHAR2(255) NOT NULL

);

CREATE TABLE MANTIS_CODE_ITEM(

CODE_ID V ARCHAR2(32) NOT NULL,

V ALUE V ARCHAR2(32) NOT NULL,

NAME V ARCHAR2(255)

)

;

.创建主键

alter TABLE MANTIS_CODE add constraint PK_MANTIS_CODE primary key (ID)

联合主键

alter TABLE MANTIS_CODE add constraint PK_MANTIS_CODE primary key (ID,NAME) 创建表描述

COMMENT ON TABLE mantis_code is '代码表'

创建字段描述

COMMENT ON COLUMN mantis_code.ID is '代码标识'

创建外键

alter table MANTIS_CODE_ITEM add constraint FK_MANTIS_CODE_ITEM foreign key(CODE_ID) references MANTIS_CODE(ID)

取得表的描述

select * from user_tab_comments where comments is not null

取得字段

select

t.TABLE_NAME,t.COLUMN_NAME,t.DATA_TYPE,t.DA TA_LENGTH,t.DA TA_PRECISION,t .DA TA_SCALE,

t.NULLABLE,t.DATA_DEFAULT from user_tab_columns t where t.TABLE_NAME='USER_INFO'

取得字段的描述

select * from user_col_comments where comments is not null;

取得表的主键

select * from user_cons_columns cc,user_constraints c

where c.constraint_name = cc.constraint_name

and c.constraint_type = 'P'

and cc.table_name = 'USER_INFO'

取得外键

select r.CONSTRAINT_NAME,

r.TABLE_NAME,

r.R_CONSTRAINT_NAME,

rc.COLUMN_NAME,

pc.COLUMN_NAME as PK_COLUMN_NAME,

pc.TABLE_NAME as PK_TABLE_NAME

from USER_CONSTRAINTS r,

USER_CONS_COLUMNS rc,

USER_CONSTRAINTS p,

USER_CONS_COLUMNS pc

where r.CONSTRAINT_TYPE = 'R'

and r.CONSTRAINT_NAME = rc.CONSTRAINT_NAME

and pc.CONSTRAINT_NAME = p.CONSTRAINT_NAME

and p.CONSTRAINT_TYPE = 'P'

and r.R_CONSTRAINT_NAME = p.CONSTRAINT_NAME

and r.TABLE_NAME = 'USER_ROLE_MAP'

如果取得数据库表则从ALL_CONSTRAINTS ALL_CONS_COLUMNS中取得

==================另外一种组织方式来获得元数据=====================

--表信息

select * from all_tab_comments t

where owner='DBO'

--列信息

select * from all_col_comments t

where owner='DBO'

--主键、外键对照

select OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, R_OWNER, R_CONSTRAINT_NAME

from all_constraints

where owner='DBO' and (Constraint_Type='P' or Constraint_Type='R')

--主键、外键信息

select *

from all_cons_columns

where owner='DBO'

order by Constraint_Name, Position

相关文档
最新文档