MySQL、Oracle元数据抽取分析
moboyou 2025-03-11 14:33 10 浏览
最近接到个任务是抽取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_ 对应于单个数据字典表视图通常是几乎相同的。
官网:
然后就可以通过文档说明找到对应的视图。
常用的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';
以上就是我个人查找元数据的流程,如有不对的地方,欢迎在评论区指正。
相关推荐
- php宝塔搭建免登录积分商城系统php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的免登录积分商城系统php源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试了一下,部...
- 宝塔docker搭建一键部署DooTask开源任务管理工具php源码pro版
-
大家好啊,我是测评君,欢迎来到web测评,本期给大家分享一下怎么在宝塔使用docker管理器一键部署DooTask开源项目任务管理工具源码(pro版),这是一个朋友分享推荐的,让我录制一期宝塔搭建教程...
- 在线考试教学系统平台源码/视频教学系统/在线考试系统PHP源码
-
在线考试教学系统平台系统源码,视频教学系统PHP源码,在线考试系统PHP源码。安装说明:1、部署好网站环境:php5.6+mysql2、将源码传至网站根目录,php源码用二进制上传,或者上传压缩包在空...
- php宝塔搭建实战宏仔杂货商城小店系统php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的宏仔杂货商城小店系统源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试了一下,部署方...
- 分析和解析PHP代码的7大工具
-
PHP已成为时下最热门的编程语言之一,然而却有许多PHP程序员苦恼找不到合适的工具来帮助自己分析和解析PHP代码。今天小编就为大家介绍几个非常不错的工具,来帮助程序员们提高自己的工作效率,一起来看看吧...
- php宝塔搭建部署小闪三消游戏PHP源码带后台
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的小闪三消游戏PHP源码带后台,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试了一下,部...
- php宝塔搭建部署昼夜双色WordPress导航模板php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的昼夜双色WordPress导航模板php源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录...
- php宝塔搭建实战可乐实物微商城系统php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的可乐实物微商城系统php源码php源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试...
- php宝塔搭建实战wordpress英文国外资讯整站php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的国外财经资讯商业新闻整站php源码,具有全自动采集发布广告联盟网站的特性,是wordpress二次开发的。上次是谁要的系统项目啊,帮你找到了...
- php宝塔搭建实战小霸王站群池管理系统php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发小霸王站群池管理系统php源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试了一下,部...
- 完美可用的全媒体广告精准营销服务平台PHP源码
-
今天测试了一套php开发的企业网站展示平台,还是非常不错的,下面来给大家说一下这套系统。1、系统架构这是一套基于ThinkPHP框架开发的HTML5响应式全媒体广告精准营销服务平台PHP源码。现在基于...
- php宝塔搭建实战红蓝两款导航网站自动收录审核检测友链php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的php宝塔搭建实战红蓝两款导航网站自动收录审核检测友链php源码。上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁...
- php宝塔搭建部署实战抽奖系统开源php源码
-
大家好啊,我是测评君,欢迎来到web测评。本期给大家带来一套抽奖系统开源php源码。感兴趣的朋友可以自行下载学习。技术架构PHP5.4+nginx+mysql5.7+JS+CSS+...
- PHP餐饮点餐外卖系统源码/H5在线点餐系统/支持多餐桌生成
-
搭建一条龙包服务器域名168元安装教程1.获取到项目源码2.配置服务器环境3.部署到服务器(php5.5+mysql5.6/5.7+apache(nginx),windows,linu...
- 一周热门
- 最近发表
- 标签列表
-
- curseforge官网网址 (16)
- 外键约束 oracle (36)
- oracle的row number (32)
- 唯一索引 oracle (34)
- oracle in 表变量 (28)
- oracle导出dmp导出 (28)
- oracle 数据导出导入 (16)
- oracle两个表 (20)
- oracle 数据库 字符集 (20)
- oracle修改端口 (15)
- oracle安装补丁 (19)
- matlab归一化 (16)
- 共轭梯度法matlab (16)
- matlab化简多项式 (20)
- 多线程的创建方式 (29)
- 多线程 python (30)
- java多线程并发处理 (32)
- 宏程序代码一览表 (35)
- c++需要学多久 (25)
- c语言编程小知识大全 (17)
- css class选择器用法 (25)
- css样式引入 (30)
- html5和css3新特性 (19)
- css教程文字移动 (33)
- php简单源码 (36)