【ORACLE】テーブルの定義、列名一覧、名前(コメント)、DDLの確認方法
ここではORACLEデータベースで、テーブルの定義、列名の一覧、名前(コメント)、DDLの確認方法を紹介しています。
テーブルの一覧やサイズを確認する方法は↓で紹介しています。
>>【ORACLE】テーブルの一覧やサイズを確認するSQL
テーブルの定義
テーブルの定義を確認する方法をいくつか紹介します。
DESCRIBEでテーブルの構造を確認するSQL
テーブルの定義を確認するときに最もよく使うのがDESCRIBEです。DESCRIBEを使うことで列名、NOTNULL制約の有無、データ型が確認できます。
DESCRIBEの基本構文は次の通りです。
DESCRIBE テーブル名;
次のSQLでは、TAB1テーブルの列名、NOTNULL制約の有無、データ型を一覧で確認することが出来ます。
DESCRIBE tab1;
DESCRIBEはDESCと短縮して使うこともできます。
DESC tab1;
列名の一覧
DBA_TAB_COLUMNSを使うことで、テーブルのもつ列の一覧を確認することが出来ます。
テーブルの持つ列の情報を参照することが出来ます。
select
a.table_name
from
dba_tab_columns a
where
a.owner = 'user1'
and a.table_name = 'tab1'
;
テーブルの列に付与したコメントの一覧はDBA_COL_COMMENTSで取得することが出来ます。
次のSQLでは、USER1の所有するTABLE1テーブルのもつカラムの一覧を取得しています。
select
a.table_name
,a.column_name
,a.comments
from
dba_col_comments a
where
a.owner = 'user1'
and a.table_name = 'table1'
;
列の持つ意味は次の通りです。
・TABLE_NAME
テーブルの名前
・COLUMN_NAME
列名
・COMMENTS
列のコメント
カラム名からテーブルを検索する方法
DBA_TAB_COLUMNSから任意のカラム名をもつテーブルを検索することもできます。
次のSQLでは、オーナーがUSER1でCOL1とう名称のカラムを含むテーブルの一覧を取得しています。
select
a.table_name
from
dba_tab_columns a
where
a.owner = 'user1'
and a.column_name = 'col1'
;
カラムのコメントで検索する方法
カラムのコメントで検索するには、dba_col_commentsも同時に使います。
次のSQLでは、オーナーがUSER1で、列のコメントが「登録日」となっている列を含むテーブルの一覧を取得しています。
select
a.table_name
from
dba_tab_columns a
where
a.owner = 'user1'
and a.column_name in (select
b.column_name
from
dba_col_comments b
where
b.owner = 'user1'
and b.comments = '登録日';
テーブルの名前(コメント)
テーブルの名前は、DBA_TAB_COMMENTSというビューで確認することが出来ます。
もちろん他のビューやテーブルと結合可能なので、DBA_TABLESなどと組み合わせて、テーブルの名前付きの一覧を作成することも可能です。
select
a.table_name
,a.table_type
,a.comments
from
dba_tab_comments a
where
a.owner = 'user1'
and a.table_name = 'table1'
;
DDL文
テーブルのDDL文(CREATE文)を取得するにはDBMS_METADATAパッケージのGET_DDLファンクションを使います。
DBMS_METADATAのGET_DDLファンクションはSQLでも呼び出すことが出来ます。
select
dbms_metadata.GET_DDL(
object_type=>'TABLE' --オブジェクトのタイプ
,name=>'table1' --オブジェクト名
,schema=>'user1' --スキーマ名
)
from
dual
;