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 でファイルのユーザーとグループを変更する方法

推薦する

Idea は、Web プロジェクトを開始するように Tomcat を設定します。グラフィック チュートリアル

tomcatの設定1. 実行構成をクリック 2. tomcat localを選択 3. tomcat...

写真とテキストによる MySQL 8.0.21 インストール チュートリアル

1. ダウンロードリンクをダウンロードするダウンロードをクリックします。Oracle アカウントにロ...

HTML テーブルの使い方 (Web ページの視覚効果を表示する)

NetEase Blog で HTML を使用する場合、テンプレートに直接コードを追加できることは...

JS の原価と基準価額の問題に関する簡単な分析

プリミティブ値 -> プリミティブ型Number String Boolean undefin...

MySQLのダウンロードとインストールのプロセスの詳細な説明

1: MySqlをダウンロードする公式サイトのダウンロードアドレス: https://dev.mys...

Docker は 2003 年の問題を解決するために MySQL リモート接続を導入しました

MySQLへの接続ここでは、リモート接続に navicat を使用します。MySQL に接続する前に...

JavaScriptページングコンポーネントの使い方の詳細な説明

ページネーションコンポーネントはWeb開発でよく使われるコンポーネントです。ページネーション機能を実...

VMware15.5でcentos8.1をインストールし、物理メモリが不足する問題に対処する最も完全なチュートリアル

1. 仮想マシンの準備1. 新しい仮想マシンを作成する 2. 仮想マシンのカスタマイズを選択する 3...

Vue2/vue3 ルーティング権限管理方法の例

1. Vueルーティングの権限制御には一般的に2つの方法がありますa. ルーティングメタ情報(メタ)...

MySQL で重複レコードをクエリして削除する方法の完全なガイド

序文この記事では主に、MySQL で重複レコードをクエリして削除する方法を紹介します。参考と学習のた...

PXEを使用してCentOS7.6を自動的にインストールする方法の詳細なチュートリアル

1. 需要ベースには 300 台の新しいサーバーがあり、CentOS7.6 オペレーティング システ...

HTML ページをスクロールするときに一部のコンテンツを固定位置に固定する方法

この記事では主に、レイアウトに役立つ、HTML ページ内の一部のコンテンツを固定してスクロール時にス...

Dockerのクイックガイド

Docker は、安全で繰り返し可能な環境でソフトウェアを自動的にデプロイする方法を提供し、コンピュ...

MySQLのインストール時に発生する可能性のある問題

質問1:インストール中に net start mysql と入力すると、次のエラー メッセージが表示...

MySQL 全体または単一のテーブルデータのエクスポート

単一のテーブルをエクスポートするmysqldump -u ユーザー -p db名 テーブル名 >...