DB/SQL

ダミーテーブルとは?ダミーテーブルの使い方~DUAL表とSYSDUMMY1表~

dummytable

ダミーテーブルとは

ダミーテーブルとは、テーブルを作らずとも、最初から存在する1列しかない特別な表のことです。表を使用せずに値を返す演算(SYSDATEなど)など、表の参照を必要とするが表の内容は重要でないSQLを発行するときに使用します。

OracleのDUAL表

OracleのダミーテーブルはDUAL表と言われています。
DUAL表はOracle Databaseによって自動的に作成される表で、SYSユーザーのスキーマにあります。すべてのユーザーがDUALという名前でアクセスすることができます。DUAL表はVARCHAR2(1)のDUMMY列を持ち、X値を持つ行があります。

DUAL表の使い方

日付を取得するSQLを作る場合、SYSDATE関数を使用します。この時に使用する、FROM句のテーブル名に意味はないので、DUAL表を使用します。

また、計算等のテーブルを使用しないSQLにもDUAL表を使用します。

DB2のSYSIBM.SYSDUMMY1表

DB2のダミーテーブルはSYSIBM.SYSDUMMY1表と言われています。
SYSIBM.SYSDUMMY1表はカタログ表(表スペース、表、列、索引、特権などを記述したもの)の一つです。
SYSIBM.SYSDUMMY1表はCHAR(1)のIBMREQD列を持ち、 Y値を持つ行があります。

SYSIBM.SYSDUMMY1表の使い方

日時を取得するSQLを作る場合、SYSDATE関数を使用します。この時に使用する、FROM句のテーブル名に意味はないので、SYSIBM.SYSDUMMY1表を使用します。

また、VALUESを使用して以下のようにも書けます。

他のDBMSの場合

他のDBMS(PostgreSQL,SQLite,Microsoft SQL Serverなど)にはダミーテーブルが存在しません。また、FROM句が省略できますので以下のように記述できます。

まとめ

ダミーテーブルとは、表の参照を必要とするが表の内容は重要でないSQLを発行するときに使用するテーブルです。ぜひ使用してみてください。

ダミーテーブル
  • OracleのDUAL表
  • DB2のSYSIBM.SYSDUMMY1表