千家信息网

如何进行MySQL和Oracle的元数据抽取分析

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,如何进行MySQL和Oracle的元数据抽取分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前言最近接到个任务是抽取m
千家信息网最后更新 2025年01月18日如何进行MySQL和Oracle的元数据抽取分析

如何进行MySQL和Oracle的元数据抽取分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

前言

最近接到个任务是抽取mysql和Oracle的元数据,大致就是在库里把库、schema、表、字段、分区、索引、主键等信息抽取出来,然后导成excel。

因为刚开始接触元数据,对这个并不了解,就想借助一下万能的百度,结果百度了一圈全是告诉我sql,直接cv就行了。虽然得到了部分数据,但是查的哪个库,哪个表我是完全不清楚的,得到的数据也不是我想要的,只有自己去官网看文档来完成自己的任务。

授人以鱼不如授人以渔,把经验写出来,给跟我一样疑惑的小伙伴一个参考。

什么是元数据

百度百科:元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。都柏林核心集(Dublin Core Metadata Initiative,DCMI)是元数据的一种应用,是1995年2月由国际图书馆电脑中心(OCLC)和美国国家超级计算应用中心(National Center for Supercomputing Applications,NCSA)所联合赞助的研讨会,在邀请52位来自图书馆员、电脑专家,共同制定规格,创建一套描述网络上电子文件之特征。

元数据是关于数据的组织、数据域及其关系的信息,简言之,元数据就是关于数据的数据。

参考文档地址

mysql:https://docs.oracle.com/cd/E17952_01/index.html

Oracle:https://docs.oracle.com/en/database/oracle/oracle-database/index.html

先说MySQL

mysql的元数据都在information_schema库中以视图的形式存在,只能看,不能修改。

进入文档后直接看information_schema的介绍,里面详细介绍了每一个表和字段。

常用的查询mysql元数据sql

-- 数据库SELECT `schema_name` 库名,`DEFAULT_CHARACTER_SET_NAME` 默认字符集 FROM `SCHEMATA` -- 表SELECT `TABLE_NAME` 表名,`TABLE_COMMENT` 描述,`TABLE_TYPE` 表类型  FROM`TABLES` -- 字段SELECT `TABLE_SCHEMA` 库名,`TABLE_NAME` 表名,`COLUMN_NAME` 字段名,`COLUMN_COMMENT` 字段描述,`DATA_TYPE` 字段类型,`CHARACTER_MAXIMUM_LENGTH` 长度,`IS_NULLABLE` 是否为空 FROM `COLUMNS` -- 分区SELECT `TABLE_SCHEMA` 库名,`TABLE_NAME` 表名,`PARTITION_NAME` 分区名,`PARTITION_ORDINAL_POSITION` 分区编号,`PARTITION_EXPRESSION` 分区函数表达式 FROM `PARTITIONS` WHERE partition_name IS NOT NULL  -- 视图SELECT * FROM `VIEWS` -- 索引SELECT * FROM STATISTICS -- 主键SELECT * FROM `COLUMNS` WHERE COLUMN_KEY = 'PRI'

再说Oracle

Oracle里的元数据在静态数据字典视图。

我们是不能直接访问数据字典表的,但可以通过数据字典视图访问其中的信息。要列出可用的数据字典视图,查询视图DICTIONARY就可以。

在静态数据字典视图里有三大类开头的视图:ALL_、DBA_、USER_

  • ALL_视图显示所有的信息,当前用户,包括从其他架构中对象的当前用户的模式以及信息访问,如果当前用户拥有的权限或角色授权的方式访问这些对象。

  • DBA_视图显示整个数据库中的所有相关信息。DBA_视图仅供管理员使用。只有拥有SELECT ANY DICTIONARY权限的用户才能访问它们。此权限DBA在系统最初安装时分配给角色。

  • USER_视图显示从当前用户的模式中的所有的信息。查询这些视图不需要特殊权限。

ALL_,DBA_以及USER_对应于单个数据字典表视图通常是几乎相同的。

官网:

然后就可以通过文档说明找到对应的视图。

查询常用的Oracle元数据sql:

-- 模式SELECT * FROM DBA_TABLESPACES; -- 表select * from user_tables ut LEFT JOIN user_tab_comments utc ON ut.TABLE_NAME = utc.TABLE_NAME; -- 字段select t.TABLE_NAME 表名,t.COLUMN_NAME 描述,t.DATA_TYPE 类型,t.DATA_LENGTH 长度,t.NULLABLE 是否为空,t.DATA_DEFAULT 默认值,s.comments 描述from user_tab_columns t LEFT JOIN user_col_comments s ON t.COLUMN_NAME = s.COLUMN_NAME WHERE t.TABLE_NAME ='ASSET_BASE_TABLE'; -- 分区SELECT * FROM USER_PART_KEY_COLUMNS; -- 索引SELECT * FROM USER_INDEXES; -- 视图SELECT * FROM USER_VIEWS; -- 主键select cu.* from USER_CONS_COLUMNS cu, USER_CONSTRAINTS au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P';

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

数据 视图 信息 字段 字典 用户 文档 权限 查询 抽取 模式 类型 索引 清楚 任务 内容 只有 可以通过 图书 对象 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 路由器服务器名是什么 软件开发工期承诺 讲解数据库连接应用步骤 把数据库所有的时间改了 总工会通报网络安全领域 成都安卓软件开发哪家专业 国家图书馆的数据库 excel 数据库学习入门 无法验证服务器身份一直跳出来 软件开发文档背景图情侣 成都市奥曲柠软件开发工作室 太极股份软件开发社招难进吗 浏览器数据库太大了怎么办 小学生网络安全分析 河南快道网络技术有限公司 国外服务器厂家 不同服务器的幻化共享吗 informix数据库自增 盐城智能软件开发咨询报价 雪峰科技网络安全采购项目 数据库1002错误码 南京智能化联想服务器供应商 毕业答辩数据库会问什么 金盾信安杯网络安全大赛好得奖吗 网络安全周资料 在公司学软件开发有前途吗 c语言实现将数据传输到数据库 bas网络安全 设置samba服务器的安全 计算机网络技术资格证好考吗
0