ORACLE数据库中,dual表究竟有啥作用,怎么老师上课总用这个表?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE数据库中,dual表究竟有啥作用,怎么老师上课总用这个表?相关的知识,希望对你有一定的参考价值。

这个表实际上是sys用户下的一个表,只有一个字段,一条记录,其他用户看到的只是一个公共同义词,所有用户都有权限查看这个公共同义词-【dual】使用这个表的好处是无论什么时候这个表总是存在的,例如执行一个查看当前日期的语句 select sysdate from dual;
这条语句在放在放在任何一个oracle数据库当中都不会报错,所以一般做一些特定查询的时候用这个表是最稳妥的。
参考技术A dual是一个虚拟表,用来构成select语法规则,oracle保证dual里面永远只有一条记录。
作用:
  1、查看当前用户,可以在 SQL Plus中执行下面语句 select user from dual;
  2、用来调用系统函数
  select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;--获得当前系统时间
  select SYS_CONTEXT('USERENV','TERMINAL') from dual;--获得主机名
  select SYS_CONTEXT('USERENV','language') from dual;--获得当前 locale
  select dbms_random.random from dual;--获得一个随机数
  3、得到序列的下一个值或当前值,用下面语句
  select your_sequence.nextval from dual;--获得序列your_sequence的下一个值
  select your_sequence.currval from dual;--获得序列your_sequence的当前值
  4、可以用做计算器 select 7*9 from dual;
5、得到1到(n - 1)的数select level r from dual connect by level < 10; -- 输出1-9的数
参考技术B dual可以理解为oracle中存在的一张虚拟表,因为sql命令强制要求数据从某表中取得,也就是说sql语句中必须要有from命令,所以oracle定义了虚拟表dual,提供一些特殊字段的查询,例如时间日期、算术运算等功能。
select sysdate from dual;
selecr 1+2 from dual;

Oracle数据库中dual是什么东西啊?

最近在搞数据仓库时候,因为有些几乎固定值的表,需要直接写入一些数据,就看了一些资料。发现很多都是 from dual。

dual是什么呢?

 

dual是Oracle中的一个伪表,利用这个伪表可以设置或查看序列,或者是调用一些内置的函数,可以很方便的时候。

 

简单来说,dual表就是oracle与数据字典自动创建的一张表,这张表是一个单行单列的表,这个表只有1列:DUMMY,数据类型为VERCHAR2(1),dual表中只有一个数据‘X‘, Oracle有内部逻辑保证dual表中永远只有一条数据。dual表主要是用来选择系统变量或是求一个表达式的值。

比如:

求系统当前时间

SELECT sysdate FROM daul

求系统当前时间,并按设定的格式显示

select to_char(sysdate,‘‘yyyy-mm-dd hh24:mi:ss‘‘) from dual;

当计算器使用

select 1+2 from dual

以上是关于ORACLE数据库中,dual表究竟有啥作用,怎么老师上课总用这个表?的主要内容,如果未能解决你的问题,请参考以下文章

dual在oracle中是啥意思?

Oracle虚表

oracle中的存储过程,有啥作用,以及怎么在代码中使用?

ORACLE中dual用法详解

oracle中触发器有啥作用

Oracle数据库中dual是什么东西啊?