特定のデータベースからテーブル名を取得する SQL クエリ
多くの場合、データベース管理者やアプリケーション開発者は、特定のデータベース内のテーブル名のリストを取得する必要があります。 このアプローチはデータベース システム (MySQL、SQL Server、Oracle など) に応じて若干異なります。 データベース スキーマ構造の違いにより、単一の普遍的な互換性のあるクエリは不可能です。
課題: 標準の INFORMATION_SCHEMA
クエリは、多くの場合、目的のデータベースだけでなく、サーバー上の すべて のデータベースからテーブルを返します。
解決策: データベース固有のフィルターをクエリに追加する必要があります。
データベース固有のクエリ:
<code class="language-sql">SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG = 'dbName'</code>
<code class="language-sql">SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA = 'dbName'</code>
"dbName"
をターゲット データベースの実際の名前に置き換えます。
Oracle の場合、INFORMATION_SCHEMA
アプローチは異なります。 現在のユーザーのスキーマのテーブルを取得するには:
<code class="language-sql">SELECT TABLE_NAME FROM USER_TABLES</code>
別のスキーマを指定するには (適切な権限が必要です):
<code class="language-sql">SELECT TABLE_NAME FROM DBA_TABLES WHERE OWNER = '<schema_name>'</code>
<schema_name>
をスキーマ所有者の名前に置き換えます。
この情報は、テーブル名を取得するための適応可能な SQL ソリューションを提供し、さまざまなデータベース プラットフォーム間での互換性を確保します。環境に合わせて dbName
または schema_name
の値を忘れずに調整してください。
以上がSQL を使用して特定のデータベースからテーブル名を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。