Dual 表

  1. 我们先从名称来说,dual不是缩写词,本身就是完整的单词。dual名词意思是对数,做形容词时是指二重的,二元的。
  2. Oracle中的dual表是一个单行单列的虚拟表。
  3. Dual表是oracle与数据字典一起自动创建的一个表,这个表只有1列:DUMMY,数据类型为VERCHAR2(1),dual表中只有一个数据'X', Oracle有内部逻辑保证dual表中永远只有一条数据。
  4. Dual表主要用来选择系统变量或求一个表达式的值。
  5. 更具体的说,我们见过这样一个简单的例子:
    SELECT sysdate FROM daul
    而Oracle的SELECT语法的限制为:
    SELECT * | [column1 [AS alias1], column2 [AS alias2]] FROM table

所以,没有表名就没有办法查询,而时间日期并不存放在任何表中,于是这个dual虚拟表的概念就被引入了。

1、DUAL表的用途
Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中
--查看当前连接用户
SQL> select user from dual;
USER

SYSTEM
--查看当前日期、时间
SQL> select sysdate from dual;
SYSDATE

2007-1-24 1
SQL> select to_char(sysdate,''yyyy-mm-dd hh24:mi:ss'') from dual;
TO_CHAR(SYSDATE,''YYYY-MM-DDHH2

2007-01-24 15:02:47
--当作计算器用
SQL> select 1+2 from dual;
1+2

3
--查看序列值
SQL> create sequence aaa increment by 1 start with 1;
SQL> select aaa.nextval from dual;
NEXTVAL

1
SQL> select aaa.currval from dual;
CURRVAL

1

专注于JavaWeb
原文地址:https://www.cnblogs.com/humi/p/7153995.html