sql >> データベース >  >> RDS >> Oracle

Oracleですべてのテーブルを一覧表示する方法

    DBAまたは開発者は、多くの場合、Oracle内のさまざまなテーブルを一覧表示する必要があります。監査とセキュリティの目的で、Oracleのすべてのテーブルを一覧表示する必要があります。特定のテーブルスペースまたは特定のスキーマ内のすべてのテーブルを一覧表示したい場合や、最近作成されたすべてのテーブルを一覧表示したい場合があります。この投稿では、これらすべてを紹介します。

    Oracleデータベースのすべてのテーブルおよび列情報は、SYS.TAB$およびSYS.COL$テーブルに格納されます。 Oracleは、テーブルと列に関する情報を取得するためのデータディクショナリビューを提供しています。

    ビューには3つのカテゴリがあります

    テーブルのすべてのリストは、上記のディクショナリビューから実行できます。

    現在のuser/oracleshowテーブルが所有するすべてのテーブルを一覧表示するには

    select tablespace_name, table_name from user_tables; 
    

    MySQLデータベースに精通している人は、MySQLのテーブルを一覧表示するためにshowtablesを使用していることを知っているでしょう。したがって、上記のクエリは基本的にoracleデータベースのoracleshowテーブルです

    Oracleデータベース内のすべてのテーブルを一覧表示するには/oracle内のすべてのテーブルを表示するには

    select owner,table_name,tablespace_name, from dba_tables;

    現在のユーザーがアクセスできるすべてのテーブルを一覧表示するには

     select owner, tablespace_name, table_name from all_tables;

    Oracle/oracleのスキーマ内のテーブルのリストを取得します。スキーマ内のテーブルを表示します

    select owner, tablespace_name, table_name from dba_tables where owner='&schema';

    テーブルスペース内のOracleリストテーブルのクエリ

    select owner, tablespace_name, table_name from dba_tables where tablespace_name='&tablespace_name';

    Oracleでテーブルのスキーマを見つける方法

    set lines 140 pages 1000
    col table_name for a30
    col owner for a7
    select owner,table_name,initial_extent,ini_trans,freelists from dba_tables where table_name=upper('&tab_name');
    

    oracl eでテーブルの作成日を確認する方法

    select owner,object_name,object_type,status,
    to_char(last_ddl_time,'DD-MON-YY HH24:MI:SS') DDL_TIME,to_char(created,'DD-MON-YY HH24:MI:SS') CR_DATE
    from dba_objects
    where object_name =upper('&obj_name') and owner='&OWN' and object_type='TABLE',
    /
    

    最近作成されたテーブルのリストを見つける方法

    select owner,object_name,object_type,status,
    to_char(last_ddl_time,'DD-MON-YY HH24:MI:SS') DDL_TIME,to_char(created,'DD-MON-YY HH24:MI:SS') CR_DATE
    from dba_objects
    where created > sysdate -7 and  object_type='TABLE'
    /
    

    Oracleデータベース内のすべてのテーブルを列名で一覧表示

    スキーマの分析、つまりさまざまなテーブル間の関係を分析するときに、同じ列名を持つすべてのテーブルを見つける必要がある場合があります。以下のクエリは、これを支援するために使用できます。手元にある助成金に応じてビューを使用できます

    select owner,table_name from all_tab_columns where column_name = '&col_name';
     or
     select owner, table_name from dba_tab_columns where column_name = '&col_name';

    必要に応じて、同じ方法でさらに多くのクエリを作成できます。私が上に提示したクエリは、最もよく聞かれるクエリであり、最も頻繁に使用されます。タスクに参加するのに役立つクエリをリストに追加したい場合は、お知らせください。

    関連記事

    Oracleでテーブルのインデックスを検索する方法
    オブジェクト統計がロックされています
    Oracleでテーブルサイズを確認するためのクエリ
    Oracleでテーブルスペースを確認する方法
    OracleドキュメントからのAll_Tablesリファレンス

    >
    1. DATE_ADD()の例– MySQL

    2. サーバー上のMSDTC'サーバーは利用できません'

    3. MySQLでソーシャルネットワークシステムのデータベースを設計するためのガイド

    4. MySQLの列の一部の値に先行ゼロを追加する