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

推薦する

無料のパブリック STUN サーバー

無料のパブリック STUN サーバーSIP 端末がプライベート IP アドレスを使用する場合、スタン...

VMware IOInsight を使用して、仮想マシンのストレージ パフォーマンスの監視を改良する

例: VMware IOInsight は、VM のストレージ I/O 動作を理解するのに役立つツー...

歴史的な Linux 画像処理および修復ソリューション

従来の Linux イメージで作成された ECS クラウド サーバーには、NTP と YUM が設定...

docker の run/cmd/entrypoint の違いの詳細な説明

Dockerfile では、run、cmd、entrypoint はすべてコマンドを実行するために使...

標準のMySQL (x64) Windowsバージョンのインストール手順の詳細な説明

MySQL x64 はインストーラーを提供していません、インストーラーを提供していません、インストー...

jQueryはフォーム検証を実装する

jQueryを使用してフォーム検証を実装します。参考までに、具体的な内容は次のとおりです。登録.ht...

Vue2.x と Vue3.x のルーティングフックの違いの詳細な説明

目次vue2.xプレコンセプト:ルーティングフックのカテゴリルーティングとコンポーネントの概念(フッ...

Mysql で group_concat の長さ制限を変更する方法

MySQL には、「group_concat」という関数があります。通常の使用では問題がないかもしれ...

プロジェクトにおける CSS グリッドシステムの柔軟な使用方法の詳細な説明

序文CSS グリッドは通常、さまざまなフレームワークにバンドルされていますが、実際のビジネス ニーズ...

CSSは座席選択効果を実現するためにautoflow属性を使用する

1. 自動フロー属性、要素コンテンツの長さと幅が要素自体の長さと幅を超える場合、スクロールバーが表示...

優れたユーザー インターフェース デザインのための 37 のヒント (画像付き)

1. 複数列レイアウトではなく、単一列レイアウトを使用する1 列のレイアウトにより、全体的な状況をよ...

知らないかもしれないmysqldumpパラメータ

前回の記事で、mysqldump バックアップ ファイルに記録されるタイムスタンプ データは UTC...

単語のグループ化シーケンスと複数フィールドのグループ化のための MySQL グループ方法

ここで商品テーブルを作成しました。その中のデータを見てみましょう。 mysql> 商品から *...

CSS で 3D ブック効果を実装するためのサンプル コード

さっそく、レンダリングを見てみましょうソースコードは以下のとおりです <!DOCTYPE ht...