Oracle学习3:dual详解

来源:互联网 发布:spss数据分析案例 生产 编辑:程序博客网 时间:2024/06/05 00:14

1.概述

Oracle中有一个单行单列的虚拟表dual,引入该表的目的是为了符合语法。
Dual表是Oracle与数据字典一起自动创建的一个表。
Oracle有内部逻辑保证dual表中永远只有一条数据。

Oracle的SELECT语法的限制为:

SELECT * | [column1 [AS alias1], column2 [AS alias2]] FROM table

因而,如果没有表名就无法进行查询,于是引入了一个虚拟表dual。

2.dual表结构及数据

dual:adj.  双的,两部分的,二体的,二重的;n.  双数; 双数词;

这里写图片描述

我们来看下dual表的结构和数据。
在命令窗口下:

SQL> desc dual;
Name  Type        Nullable Default Comments ----- ----------- -------- ------- -------- DUMMY VARCHAR2(1) Y
SQL> select * from dual;
DUMMY-----X

可以看出
dual表是单行单列的表
这个表只有1列:DUMMY,数据类型为VERCHAR2(1),dual表中只有一个数据’X’。
(dummy有傀儡、样品的意思)
这里写图片描述

3.dual表的作用

如下:

查看当前连接用户

SQL> select user from dual;

查看当前日期、时间

SQL> select sysdate from dual;SQL> select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;

数据计算

SQL> select 10*10 from dual;

4.dual建表语句

如下是dual的建表语句:

-- Create tablecreate table SYS.DUAL(  dummy VARCHAR2(1))tablespace SYSTEM  pctfree 10  pctused 40  initrans 1  maxtrans 255  storage  (    initial 16K    next 1M    minextents 1    maxextents unlimited  );-- Grant/Revoke object privileges grant select on SYS.DUAL to PUBLIC with grant option;
原创粉丝点击