我是靠谱客的博主 知性云朵,最近开发中收集的这篇文章主要介绍Oracle元数据常见应用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

==========================元数据简介==============================

元数据简介

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

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

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

  某个表上定义的约束;

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

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

 

 

 

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

  • 创建表,并给表和字段加上描述
    CREATE TABLE MANTIS_CODE(
        ID      VARCHAR2(32)     NOT NULL,
        NAME    VARCHAR2(255)    NOT NULL
    );

CREATE TABLE MANTIS_CODE_ITEM(
    CODE_ID    VARCHAR2(32)     NOT NULL,
    VALUE      VARCHAR2(32)     NOT NULL,
    NAME       VARCHAR2(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.DATA_LENGTH,t.DATA_PRECISION,t.DATA_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

最后

以上就是知性云朵为你收集整理的Oracle元数据常见应用的全部内容,希望文章能够帮你解决Oracle元数据常见应用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部