OracleのDUAL表について。
この記事の内容はコチラです
- 「DUAL表」とは?
- 「DUAL表」はどのように使う?
今回は、OracleのDUAL表について紹介します!
OracleのDUAL表とは?
Oracleには「DUAL」というテーブルがあります。この「DUAL」について解説します。
DUAL表とはダミーテーブルのこと
OracleのDUAL表というのは、ダミーのテーブルのことです。ダミーのテーブルがあると何かと便利なので用意されています。
DUAL表は、Oracleインストール時に自動的に作成されます。なので自分で作成しなくてもいつでも使えます。
ダミーとはいっても、実はDUAL表はSYSユーザーのスキーマにあります。テーブル自体に列・行ももっています。DUMMY列を持ち、X値を持つ行があります。DUMMY列の型はVARCHAR2(1)です。
<DUAL表>
DUMMY |
X |
ダミー表といっているのは、ダミー的に表を使うからです。
参照:DUAL表からの選択
DUALの使い方
何となくDUALの意味がわかったところで、DUALの使い方をいくつか挙げていきます。実際にどのように使うかがわかれば、DUAL表がスッキリすると思います。
例1. 関数だけを使う
--日付を取得する SELECT SYSDATE FROM DUAL; [結果] 22-01-01
Oracleで日付を取得する場合は、SYSDATE関数を使います。だけど、FROM句に何のテーブルを記述すればいいのかな?
この場合、特にテーブルなんて必要ないですよね?関数だけ使いたいだけですし。でも「FROM」は省略できないので、ダミー表として「DUAL」を使います。
このように関数だけ実行したいときにダミー表「DUAL」を使います。
例2. 動作確認で使う
--四捨五入する SELECT ROUND(10.5) FROM DUAL; [結果] 11
他には動作確認でも使えます。はじめて使う関数はどのような挙動をするかわかりません。なので使う前に動きをチェックしておきたい。そんなときに使います。
ここではROUND関数の動作確認をしました。ROUND関数は四捨五入する関数ですが、はじめて使う場合はちょっと不安です。「本当にROUNDで四捨五入きるかな?」そんなときにDUALが便利です。
sqlplusを起動して、DUAL表を使って関数がどのような結果になるかサクっと確認できます。
このようにDUAL表は関数の動作確認をするときに使えます。わりと便利なので使ってみて下さい。
OracleのDUAL表はダミーとして何かと便利なテーブルなのです。
以上、OracleのDUAL表について解説でした。
コメント
SYSDATE でなく SYSATE になっています。
SELECT SYSDATE from DUAL;
「D」が抜けておりましたので追加しました。
ご指摘ありがとうございました!