MySQLとOracleのメタデータ抽出例分析

MySQLとOracleのメタデータ抽出例分析

序文

最近、MySQL と Oracle からメタデータを抽出するタスクを受け取りました。これは基本的に、ライブラリ、スキーマ、テーブル、フィールド、パーティション、インデックス、主キー、およびライブラリ内のその他の情報を抽出し、それを Excel にエクスポートすることを意味します。

メタデータについて学び始めたばかりであまり知らなかったため、万能の Baidu を使用したいと考えました。結果、Baidu で検索したところ、sql しか表示されず、cv を使用するだけで済みました。いくつかのデータは取得できましたが、どのデータベースやテーブルを探しているのか分からず、取得したデータは求めていたものではありませんでした。タスクを完了するには、公式 Web サイトにアクセスしてドキュメントを読む必要がありました。

魚を与えるよりも、魚の釣り方を教える方が良い。私と同じ疑問を持つ友人たちの参考になるように、私の経験を書き留めました。

メタデータとは

Baidu 百科事典: メタデータは、中間データまたはリレー データとも呼ばれ、データに関するデータであり、主にデータのプロパティを記述する情報であり、保存場所、履歴データ、リソース検索、ファイル レコードの表示などの機能をサポートするために使用されます。メタデータは一種の電子カタログです。カタログ化の目的を達成するには、データの内容や特性を記述して収集し、それによってデータの検索を支援するという目的を達成する必要があります。 Dublin Core Metadata Initiative (DCMI) は、メタデータのアプリケーションです。これは、1995 年 2 月に国際図書館コンピュータ センター (OCLC) と国立スーパーコンピューティング アプリケーション センター (NCSA) が共同で主催したセミナーでした。52 人の図書館員とコンピュータの専門家が招待され、共同で仕様を開発し、インターネット上の電子ファイルを記述する一連の特性を作成しました。

メタデータは、データの構成、データ ドメイン、およびそれらの関係に関する情報です。つまり、メタデータはデータに関するデータです。

参照文書アドレス

oracle.com/cd/E17952_01 のドキュメント

オラクル: 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 パーティション名 IS NOT NULL 
 
-- ビュー SELECT * FROM `VIEWS`
 
-- インデックス SELECT * FROM STATISTICS
 
-- 主キー SELECT * FROM `COLUMNS` WHERE COLUMN_KEY = 'PRI'

Oracleについて話しましょう

Oracle のメタデータは静的データ ディクショナリ ビューにあります。

データ ディクショナリ テーブルに直接アクセスすることはできませんが、データ ディクショナリ ビューを通じてテーブル内の情報にアクセスすることはできます。使用可能なデータ ディクショナリ ビューを一覧表示するには、ビュー DICTIONARY をクエリします。

静的データディクショナリビューには、ALL_、DBA_、USER_の3種類のビューがあります。

  • ALL_ ビューには、現在のユーザーがアクセスできるすべてのスキーマに関する情報が表示されます。これには、現在のユーザーがアクセスできる他のスキーマのオブジェクトに関する情報や、現在のユーザーがそれらのオブジェクトへのアクセスを許可する権限またはロールを持っているかどうかが含まれます。
  • DBA_ ビューには、データベース全体の関連情報がすべて表示されます。 DBA_ ビューは管理者専用です。 SELECT ANY DICTIONARY 権限を持つユーザーのみがアクセスできます。この権限は、システムが最初にインストールされるときに DBA ロールに割り当てられます。
  • USER_ ビューには、現在のユーザーのスキーマからのすべての情報が表示されます。これらのビューをクエリするために特別な権限は必要ありません。

単一のデータ ディクショナリ テーブルに対応する ALL_、DBA_、および USER_ ビューは通常、ほぼ同じです。

公式サイト:

その後、ドキュメントの説明を通じて対応するビューを見つけることができます。

一般的な Oracle メタデータのクエリ SQL:

-- モード SELECT * FROM DBA_TABLESPACES;
 
--テーブル選択* 
user_tables ut から LEFT JOIN user_tab_comments utc ON ut.TABLE_NAME = utc.TABLE_NAME;
 
-- フィールド選択 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;
 
-- 主キー USER_CONS_COLUMNS cu、USER_CONSTRAINTS au から cu.* を選択します 
ここで、cu.constraint_name = au.constraint_name かつ au.constraint_type = 'P';

要約する

これで、MySQL と Oracle のメタデータ抽出に関するこの記事は終了です。MySQL Oracle メタデータ抽出に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQLでデータベースメタデータを呼び出す方法
  • MySQL メタデータ ビューとサンプル コード

<<:  HTML フォーム コントロールの無効な属性の読み取り専用と無効の概要

>>:  Linux でファイルのユーザーとグループを変更する方法

推薦する

html、xhtml、xmlの違い

開発動向: html (ハイパーテキスト マークアップ言語) - xhtml (拡張ハイパーテキスト...

Zabbix で複数の JVM プロセスを監視する方法

1. シナリオの説明:私たちの環境ではマイクロサービスを使用しています。各プログラムには個別のプロセ...

JavaScript シングルスレッドと非同期の詳細

目次1. タスクキュー2. 混乱を招く問題を説明する1. setTimeout(f1,0)とは何です...

Linuxファイルシステム操作の実装

この読書ノートでは、主にファイルシステムに関連する操作を記録します。ディスクとディレクトリの容量ディ...

Vueでパスワードの表示と非表示機能を実装するアイデアを詳しく解説

効果: アイデア:入力タイプ属性を使用して、タイプ値がテキストの場合はパスワードを表示し、タイプ値が...

今日、私は非常に奇妙なクリックの問題に遭遇し、自分で解決しました

...こんな感じで、今日はポップアップウィンドウを作ろうと思ったのですが、バックエンド PHP によ...

ウェブページの読み込み速度を上げる6つのヒント

第二に、キーワードのランキングは、Webページの表示速度にも関係しています(参照:キーワードランキン...

Linux7で仮想ホストを実装する3つの方法

1. 同じIPアドレス、異なるポート番号仮想ホスト 1: ホスト IP アドレスは 172.16.3...

ログインボックスのドラッグ効果を実現するためのJavascript

この記事では、ログインボックスのドラッグ効果を実現するためのJavascriptの具体的なコードを参...

ChromeとIEに対応したWMPに埋め込まれたHTMLの詳細な紹介

実際には、対応する記述方法は多数ありますが、最も一般的なのは object + embedded で...

Linux および Unix サーバーのセキュリティを強化する方法

ネットワーク セキュリティは非常に重要なトピックであり、サーバーはネットワーク セキュリティにおける...

js配列のfind、some、filter、reduceの違いの詳細な説明

Array の filter、find、some、reduce メソッドの違いを区別し、使用シナリオ...

Windows環境でのMySQL 8.0.13無料インストールバージョンの設定チュートリアル

目次圧縮ファイルをダウンロードするアドレス: https://dev.mysql.com/downl...

JS+Canvas が抽選ホイールを引く

この記事では、宝くじターンテーブルを描画するJS + Canvasの具体的なコードを参考までに共有し...