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

推薦する

マウスを置いたときに半透明効果のテキスト説明を実現するための純粋な CSS (初心者は必読)

効果は以下のとおりです。 例1 例2:例1[結婚式の計画]を例にとるHTML: <div cl...

Linux オペレーティング システムに Apache サービスをインストールする方法

ダウンロードリンク:動作環境VMware 仮想マシンの CentOS 7.6セキュアCRT Xftp...

Vue はボタンをクリックしてファイルをダウンロードする操作コードを実装します (バックエンド Java)

前回の記事では、ボタンをクリックしてファイルをダウンロードするVueの機能を紹介しました。今日は、ボ...

jQueryチェーン呼び出しの詳細な説明

目次チェーン呼び出し小さなケースチェーン呼び出しjQuery オブジェクトが任意のメソッド (ノード...

Linux を使用して時間指定ファイルが占有するディスク容量を計算する方法

スケジュールされたタスク エディターを開きます。Cent は、デフォルトで vim を使用して直接開...

Vue2 と Vue3 でウォッチ リスナーを使用する方法

watch : データの変更を監視する(特定の値の変更イベント) vue2.x データ(){ 戻る ...

Vue + Axios リクエストインターフェース方式とパラメータ渡し方式の詳しい説明

目次1. リクエストを取得する: 2. 投稿リクエスト: 3. 拡張と補足Vue スキャフォールディ...

dockerでpdflatex環境を設定する方法

技術的背景Latex は文書作成、特に記事作成には欠かせないツールであり、必須のテキスト組版ツールで...

一般的なMySQLコマンドの概要

mysqlrootパスワードの設定と変更初めて MySQL データベースに入ります。 !環境変数にm...

CSS 配置レイアウト (位置、配置レイアウト スキル)

1. ポジショニングとは何ですか? CSS の position 属性には、absolute/re...

初心者向け入門講座⑧:記事サイトを簡単に作る

前回の投稿では、Web ページの作成方法について説明しました。Web サイトは多くの Web ページ...

Django+Mysql+Redis+Gunicorn+NginxのDockerデプロイメントの実装

I. はじめにDockerテクノロジーは現在非常に人気があります。コンテナを介してプロジェクト環境を...

ディスク容量不足による MySQL レプリケーション障害の解決方法

目次ケースシナリオ問題を解決するまとめケースシナリオ本日、オンラインで問題が発見されました。監視範囲...

ウェブページのエンコードにおける GB2312、GBK、UTF-8 の違い

まず、GB2312、GBK、UTF-8 はすべて文字エンコーディングであることを理解する必要がありま...

MySQL にテキストと画像を保存する方法

Oracle の大きなテキスト データ型 Clob 長いテキスト型 (MySQL ではサポートされて...