欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL和Oracle的元數(shù)據(jù)抽取實例分析

 更新時間:2021年12月26日 12:55:48   作者:這行代碼沒Bug  
MySQL和Oracle雖然在架構(gòu)上有很大的不同,但是如果從某些方面比較起來,它們有些方面也是相通的,下面這篇文章主要給大家介紹了關(guān)于MySQL和Oracle元數(shù)據(jù)抽取的相關(guān)資料,需要的朋友可以參考下

前言

最近接到個任務(wù)是抽取mysql和Oracle的元數(shù)據(jù),大致就是在庫里把庫、schema、表、字段、分區(qū)、索引、主鍵等信息抽取出來,然后導(dǎo)成excel。

因為剛開始接觸元數(shù)據(jù),對這個并不了解,就想借助一下萬能的百度,結(jié)果百度了一圈全是告訴我sql,直接cv就行了。雖然得到了部分?jǐn)?shù)據(jù),但是查的哪個庫,哪個表我是完全不清楚的,得到的數(shù)據(jù)也不是我想要的,只有自己去官網(wǎng)看文檔來完成自己的任務(wù)。

授人以魚不如授人以漁,把經(jīng)驗寫出來,給跟我一樣疑惑的小伙伴一個參考。

什么是元數(shù)據(jù)

百度百科:元數(shù)據(jù)(Metadata),又稱中介數(shù)據(jù)、中繼數(shù)據(jù),為描述數(shù)據(jù)的數(shù)據(jù)(data about data),主要是描述數(shù)據(jù)屬性(property)的信息,用來支持如指示存儲位置、歷史數(shù)據(jù)、資源查找、文件記錄等功能。元數(shù)據(jù)算是一種電子式目錄,為了達(dá)到編制目錄的目的,必須在描述并收藏數(shù)據(jù)的內(nèi)容或特色,進(jìn)而達(dá)成協(xié)助數(shù)據(jù)檢索的目的。都柏林核心集(Dublin Core Metadata Initiative,DCMI)是元數(shù)據(jù)的一種應(yīng)用,是1995年2月由國際圖書館電腦中心(OCLC)和美國國家超級計算應(yīng)用中心(National Center for Supercomputing Applications,NCSA)所聯(lián)合贊助的研討會,在邀請52位來自圖書館員、電腦專家,共同制定規(guī)格,創(chuàng)建一套描述網(wǎng)絡(luò)上電子文件之特征。

元數(shù)據(jù)是關(guān)于數(shù)據(jù)的組織、數(shù)據(jù)域及其關(guān)系的信息,簡言之,元數(shù)據(jù)就是關(guān)于數(shù)據(jù)的數(shù)據(jù)。

參考文檔地址

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

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

先說MySQL

mysql的元數(shù)據(jù)都在information_schema庫中以視圖的形式存在,只能看,不能修改。

進(jìn)入文檔后直接看information_schema的介紹,里面詳細(xì)介紹了每一個表和字段。

常用的查詢mysql元數(shù)據(jù)sql

-- 數(shù)據(jù)庫
SELECT `schema_name` 庫名,`DEFAULT_CHARACTER_SET_NAME` 默認(rèn)字符集 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`
 
-- 分區(qū)
SELECT `TABLE_SCHEMA` 庫名,`TABLE_NAME` 表名,`PARTITION_NAME` 分區(qū)名,`PARTITION_ORDINAL_POSITION` 分區(qū)編號,`PARTITION_EXPRESSION` 分區(qū)函數(shù)表達(dá)式 
FROM `PARTITIONS` WHERE partition_name IS NOT NULL 
 
-- 視圖
SELECT * FROM `VIEWS`
 
-- 索引
SELECT * FROM STATISTICS
 
-- 主鍵
SELECT * FROM `COLUMNS` WHERE COLUMN_KEY = 'PRI'

再說Oracle

Oracle里的元數(shù)據(jù)在靜態(tài)數(shù)據(jù)字典視圖。

我們是不能直接訪問數(shù)據(jù)字典表的,但可以通過數(shù)據(jù)字典視圖訪問其中的信息。要列出可用的數(shù)據(jù)字典視圖,查詢視圖DICTIONARY就可以。

在靜態(tài)數(shù)據(jù)字典視圖里有三大類開頭的視圖:ALL_、DBA_、USER_

  • ALL_視圖顯示所有的信息,當(dāng)前用戶,包括從其他架構(gòu)中對象的當(dāng)前用戶的模式以及信息訪問,如果當(dāng)前用戶擁有的權(quán)限或角色授權(quán)的方式訪問這些對象。
  • DBA_視圖顯示整個數(shù)據(jù)庫中的所有相關(guān)信息。DBA_視圖僅供管理員使用。只有擁有SELECT ANY DICTIONARY權(quán)限的用戶才能訪問它們。此權(quán)限D(zhuǎn)BA在系統(tǒng)最初安裝時分配給角色。
  • USER_視圖顯示從當(dāng)前用戶的模式中的所有的信息。查詢這些視圖不需要特殊權(quán)限。

ALL_,DBA_以及USER_對應(yīng)于單個數(shù)據(jù)字典表視圖通常是幾乎相同的。

官網(wǎng):

然后就可以通過文檔說明找到對應(yīng)的視圖。

查詢常用的Oracle元數(shù)據(jù)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 默認(rèn)值,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';
 
-- 分區(qū)
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';

總結(jié)

到此這篇關(guān)于MySQL和Oracle元數(shù)據(jù)抽取的文章就介紹到這了,更多相關(guān)MySQL Oracle元數(shù)據(jù)抽取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL索引失效的典型案例

    MySQL索引失效的典型案例

    索引在我們使用MySQL數(shù)據(jù)庫時可以極大的提高查詢效率,然而,有時候因為使用上的一些瑕疵就會導(dǎo)致索引的失效,無法達(dá)到我們使用索引的預(yù)期效果,今天介紹一種MySQL中幾種常見的索引失效的原因,可以在以后的工作中盡可能避免因索引失效帶來的坑。
    2021-06-06
  • mysql使用force index的問題解決

    mysql使用force index的問題解決

    FORCE INDEX是MySQL中的一個查詢提示,本文主要介紹了mysql使用force index的問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • MySQL中基本的多表連接查詢教程

    MySQL中基本的多表連接查詢教程

    這篇文章主要介紹了MySQL中基本的多表連接查詢教程,附帶了JOIN的基本連接用法講解,需要的朋友可以參考下
    2015-11-11
  • MySQL邏輯備份into?outfile

    MySQL邏輯備份into?outfile

    這篇文章主要介紹了MySQL?備份之?into?outfile,文章圍繞主題展開詳細(xì)內(nèi)容介紹,具有一定的參考價值需要的小伙伴可以參考一下
    2022-05-05
  • mysql創(chuàng)建用戶授權(quán)步驟詳解

    mysql創(chuàng)建用戶授權(quán)步驟詳解

    這篇文章主要介紹了mysql創(chuàng)建用戶授權(quán),本文分步驟給大家介紹的非常詳細(xì),對mysql創(chuàng)建用戶授權(quán)詳細(xì)步驟感興趣的朋友一起看看吧
    2023-07-07
  • 詳解MySQL的數(shù)據(jù)行和行溢出機(jī)制

    詳解MySQL的數(shù)據(jù)行和行溢出機(jī)制

    在前面的文章中,白日夢曾不止一次的提及到:InnoDB從磁盤中讀取數(shù)據(jù)的最小單位是數(shù)據(jù)頁。 而你想得到的id = xxx的數(shù)據(jù),就是這個數(shù)據(jù)頁眾多行中的一行。 這篇文章我們就一起來看一下數(shù)據(jù)行設(shè)計的多么巧妙。
    2020-11-11
  • MySQL中FIND_IN_SET函數(shù)與INSTR函數(shù)用法解析

    MySQL中FIND_IN_SET函數(shù)與INSTR函數(shù)用法解析

    這篇文章主要介紹了MySQL中FIND_IN_SET函數(shù)與INSTR函數(shù)用法解析,本文通過實例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-04-04
  • 解決MySQL server has gone away錯誤的方案

    解決MySQL server has gone away錯誤的方案

    在本篇文章里小編給大家分享的是一篇關(guān)于MySQL server has gone away錯誤的解決辦法,有需要的朋友們可以參考下。
    2020-02-02
  • Linux中安裝MySql 5.7.21的詳細(xì)操作步驟

    Linux中安裝MySql 5.7.21的詳細(xì)操作步驟

    這篇文章主要給大家介紹了關(guān)于在Linux中安裝MySql 5.7.21的詳細(xì)操作步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • MySQL自動為查詢數(shù)據(jù)結(jié)果加序號

    MySQL自動為查詢數(shù)據(jù)結(jié)果加序號

    這篇文章主要給大家介紹了關(guān)于MYSQL如何自動為查詢數(shù)據(jù)的結(jié)果編上序號的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧
    2022-12-12

最新評論