日期:2014-05-17  浏览次数:20722 次

对oracle中dual表的个人理解
一直对oracle中dual表耿耿于怀,不能揭开她的真正面纱。
  下面将自己对dual的一点理解写出来,欢迎大虾指点迷津。
  我执行语句:select count(1+1),count(3+2),count(DUMMY),count(*) from dual 得到结果: 


  由这条语句,我得出我的思考结果:

  1. dual表是怎样的表? 

  一张有表名为dual,设置了一个固定列(DUMMY)的表,可以任意增加临时column的表。


  上图中很明显,COUNT(DUMMY)列是固定列,而COUNT(1+1)列和COUNT(1+2)列是临时增加列。因此得出1中的结论,欢迎大虾指教。

  2. 设计dual的意义? 

  为了满足数据库数据处理过程中的逻辑运算、查询系统信息,让这些查询语句符合sql规范而设计的一个特殊的表。

  可以查询一个逻辑运算,如:select 1+1 from dual;也可以查询系统中的信息,如:select sysdate from dual等;为了让这些语句符合sql语句规范,如:要查询当然用户,难不成用select user(如果允许这样语句,那么将天下大乱)

 

------解决方案--------------------
符合sql规范而设计的一个特殊的表。

就是这句话
------解决方案--------------------
sqlserver中
取得当前时间:
SELECT getdate()
这就是它的语法,不会什么天下大乱的……
------解决方案--------------------
Dual表是数据库数据数据字典中的一个小表,用户写的应用程序可以引用该表确保得到一个结果。
当一个值必需要被返回一次时,dual表非常有用,例:当时系统日期和时间。
Dual表有一个列为dummy,和一行,它的值为X。
------解决方案--------------------
应该就是为了可以执行类似:select sysdate from dual;这类的语句搞的。
------解决方案--------------------
探讨

Dual表是数据库数据数据字典中的一个小表,用户写的应用程序可以引用该表确保得到一个结果。
当一个值必需要被返回一次时,dual表非常有用,例:当时系统日期和时间。
Dual表有一个列为dummy,和一行,它的值为X。

------解决方案--------------------
http://www.itpub.net/forum.php?mod=viewthread&tid=1542891&highlight=dual%B1%ED%D7%DC%BD%E1

看看这个吧