ここではMySQLで、DUAL表について紹介しています。
DUAL表について
DUAL表とは、ORACLEデータベースだと初めから用意されている1列しか持たないダミーテーブルのことを指します。
例えば、次のSQLのようにシステム日付を取得するなど、表にアクセスしなくても良いときに利用します。
SELECT SYSDATE FROM DUAL;
MySQLでは、次のようにFROM以降を指定せずとも実行することが出来ます。
mysql> select curdate();
+------------+
| curdate() |
+------------+
| 2010-10-10 |
+------------+
1 row in set (0.01 sec)
ただし他のDBMSとの互換性を保つために、「FROM DUAL」と記述しても動作するようになっています。
mysql> select curdate() from dual;
+------------+
| curdate() |
+------------+
| 2010-10-10 |
+------------+
1 row in set (0.00 sec)