(1)dual是什么:是Oracle数据库中的一张表(虚表),只包含一个VARCHAR2(1)类型,名称为DUMMY的字段。
ORACLE数据库对dual表的操作做了一些特殊处理,尽量保证dual表只返回一条记录.这些内部操作是不可见的。
(2)dual的作用:满足语法结构
(3)dual的奇怪特性:只返回一条记录,
测试过程如下:
SQL> select * from dual;
DUMMY
-----
X
SQL> select count(*) from dual;
COUNT(*)
----------
1
X为DUMMY字段的默认值。
SQL> insert into dual values ('H');
已创建一行
SQL> commit;
提交完成
SQL> select count(*) from dual;
COUNT(*)
----------
1
SQL> select * from dual;
DUMMY
-----
X
SQL> update dual set dummy ='W';
已更新一行
SQL> commit;
提交完成
SQL> select * from dual;
DUMMY
-----
W
从上面可以看到,虽然插入dual表成功,但是查询记录的时候仍然只展示默认的那条记录,且记录数一直为1。Update可以成功,且将dual表中的记录成功更新。