oracleDBのスキーマに対するselectのメモ
例えば、以下のような2つのテーブルがあるとする。
商品テーブル
商品名 | 価格 |
---|---|
りんご | 100 |
商品名:VARCHAR2(10)
価格:NUMBER(3)
お店テーブル
お店名 | 取扱商品名 |
---|---|
A商店 | りんご |
お店名:VARCHAR2(10)
取扱商品名:VARCHAR2(10)
カラム名に「商品」が含まれているカラムとそのテーブルが知りたい
以下のクエリを実行すると
select a.COLUMN_NAME, a.TABLE_NAME from USER_TAB_COLUMNS a where a.COLUMN_NAME like '%商品%'
この結果が得られる。
a.COLUMN_NAME | a.TABLE_NAME |
---|---|
商品名 | 商品テーブル |
取扱商品名 | お店テーブル |
「VARCHAR2(10)」のカラムとそのテーブルが知りたい
以下のクエリを実行すると
select a.COLUMN_NAME, a.TABLE_NAME from USER_TAB_COLUMNS a where a.DATA_TYPE = 'VARCHAR2(10)'
この結果が得られる。
a.COLUMN_NAME | a.TABLE_NAME |
---|---|
商品名 | 商品テーブル |
お店名 | お店テーブル |
取扱商品名 | お店テーブル |
これらのCOLUMN_NAME、TABLE_NAME、USER_TAB_COLUMNS、DATA_TYPEなどで取得できる情報を
データディクショナリーと言うらしい