【数据库】特殊的数据表dual

在说了oracle的数据库、表空间之后,下面介绍一下oracle中非常特殊的数据表----dual。

dual表实际属于系统用户sys,只要具有数据库的基本权限,均可以查询该表的内容,如下截图:


或者可以这样:


从上面查询结果,可以看出,dual表是含有一行一列的表。这个表并不是为了存储数据而创建的,其意义是在于提供强制的数据源。


在oracle中,所有查询语句必须满足select column_name from table_name的格式,但是,在某些场景下,数据源table_name并不是明确的。举个列子:函数sysdate()用于返回当前日期,那么在SQL命令行下调用该函数时,很难有明确的数据源,此时用到dual表,就很赞了!看下面截图:



当然,如果脑洞大开,还可以进行数学运算,dual表用来作为数据源,可以打印和查看数输出结果。看下面截图:



总结以上:dual表提供给了一行一列,类似一个单行单列的矩阵,从而使各种表达式、函数运算在以它为数据源时,能够输出单行单列的形式。

另外,该表是归sys所有,因此,只有改用户才能进行修改该表,但是,修改该表的内容或者结果都是应该禁止的。




posted @ 2016-03-10 21:54  iamliuxin  阅读(320)  评论(0编辑  收藏  举报