中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行MySQL和Oracle的元數據抽取分析

發布時間:2021-12-27 13:05:57 來源:億速云 閱讀:252 作者:柒染 欄目:開發技術

如何進行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_對應于單個數據字典表視圖通常是幾乎相同的。

官網:

如何進行MySQL和Oracle的元數據抽取分析

然后就可以通過文檔說明找到對應的視圖。

查詢常用的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';

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汉川市| 正蓝旗| 霞浦县| 昌黎县| 洪江市| 泾阳县| 进贤县| 晋江市| 富蕴县| 永德县| 邮箱| 濮阳县| 迁安市| 沁阳市| 景泰县| 松桃| 凌源市| 新宁县| 天全县| 吐鲁番市| 乌兰浩特市| 苏尼特右旗| 卫辉市| 县级市| 滦南县| 子长县| 略阳县| 罗甸县| 桂林市| 霞浦县| 高阳县| 炉霍县| 宁安市| 潞城市| 桂东县| 二连浩特市| 岫岩| 廉江市| 祥云县| 阿鲁科尔沁旗| 敦化市|