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

dummytable

DBに存在するダミーテーブルとは何でしょうか?今回は特別な表であるダミーテーブルについて紹介します。

今日はダミーテーブルについて学習しよう!

目次

ダミーテーブルとは

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

OracleのDUAL表

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

DUAL表の使い方

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

#日付をDUAL表から取得する
SELECT SYSDATE FROM DUAL;

#結果
19-12-16

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

#計算結果をDUAL表から取得する
SELECT 1+1 FROM DUAL;

#結果
2

DB2のSYSIBM.SYSDUMMY1表

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

SELECT * FROM SYSIBM.SYSDUMMY1;

IBMREQD
-------
Y

  1 レコードが選択されました。

SYSIBM.SYSDUMMY1表の使い方

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

#日時をSYSIBM.SYSDUMMY1表から取得する
SELECT SYSDATE FROM SYSIBM.SYSDUMMY1;

#結果
2019-12-16-12.30.00

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

#日時をVALUESを使用して取得する
VALUES SYSDATE;

#結果
2019-12-16-12.30.00

他のDBMSの場合

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

例 SQL Serverで日付を取得する
SELECT GETDATE();

まとめ

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

ダミーテーブル

  • OracleのDUAL表
  • DB2のSYSIBM.SYSDUMMY1表

今日はダミーテーブルについて学習したよ!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次
閉じる