oracle中dual详解 基本上oracle引入dual为的就是符合语法 1. 我们先从名称来说,dual不是缩写词,本身就是完整的单词。dual名词意思是对数,做形容词时是指二重的,二元的。 2. Oracle中的dual表是一个单行单列的虚拟表。 3. Dual表是oracle与数据字典一起自

oracle中dual详解

基本上oracle引入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

2、关于DUAL表的测试与分析

DUAL就是个一行一列的表,如果你往里执行insert、delete、truncate操作,就会导致很多程序出问题。结果也因sql*plus、pl/sql dev等工具而异。

--查看DUAL是什么OBJECT

--DUAL是属于SYS schema的一个表,然后以PUBLIC SYNONYM的方式供其他数据库USER使用。

SQL> select owner, object_name , object_type from dba_objects where object_name like ''%DUAL%'';

OWNER OBJECT_NAME OBJECT_TYPE

---------- ----------------- ------------------

SYS DUAL TABLE

PUBLIC DUAL SYNONYM

--查看表结构,只有一个字段DUMMY,为VARCHAR2(1)型

SQL> desc dual

Name Type Nullable Default Comments

----- ----------- -------- ------- --------

DUMMY VARCHAR2(1) Y

--DUAL表的结构:

create table SYS.DUAL

(

DUMMY VARCHAR2(1)

)

tablespace SYSTEM

pctfree 10

pctused 40

initrans 1

maxtrans 255

storage

(

initial 16K

next 16K

minextents 1

maxextents 505

pctincrease 50

);

/*

很是困惑,ORACLE为什么要用VARCHAR(1)型,用CHAR(1)难道不好么?从这样的表结构来看,DUAL表设计的目的就是要尽可能的简单,以减少检索的开销。

还有,DUAL表是建立在SYSTEM表空间的,第一是因为DUAL表是SYS这个用户建的,本来默认的表空间就是SYSTEM;第二,把这个可能经常被查询的表和用户表分开来存放,对于系统性能的是有好处的。

有了创建了表、创建了同义词还是不够的。DUAL在SYS这个Schema下面,因此用别的用户登录是无法查询这个表的,因此还需要授权:

grant select on SYS.DUAL to PUBLIC with grant option;

将Select 权限授予公众。

接下来看看DUAL表中的数据,事实上,DUAL表中的数据和ORACLE数据库环境有着十分重要的关系(ORACLE不会为此瘫痪,但是不少存储过程以及一些查询将无法被正确执行)。

oracle语句中dual什么意思,oracle中dual详解相关推荐

  1. oracle中的exists 和 not exists 用法详解

    from:http://blog.sina.com.cn/s/blog_601d1ce30100cyrb.html oracle中的exists 和 not exists 用法详解 (2009-05- ...

  2. 《oracle大型数据库系统在AIX/unix上的实战详解》讨论31: oracle、sybase 数据库的不同访问...

    <Oracle大型数据库系统在AIX/UNIX上的实战详解> 讨论31:  oracle.sybase 数据库的不同访问方式   文平. 用户来信要求更细节比较一下Oracle和sybas ...

  3. Oracle大型数据库系统在AIX/UNIX上的实战详解

    前言 风,紧, 夜,深沉, 剑,已出鞘, 影,飘然前行! 本书的立意和内容 在服务器领域,IBM p系列服务器与AIX操作系统毫无疑问是UNIX服务器领域中的佼佼者,它代表着UNIX深刻的技术内涵和广 ...

  4. 连接池中的maxIdle,MaxActive,maxWait等参数详解

    转: 连接池中的maxIdle,MaxActive,maxWait等参数详解 2017年06月03日 15:16:22 阿祥小王子 阅读数:6481 版权声明:本文为博主原创文章,未经博主允许不得转载 ...

  5. mysql group by having count_mysql中count(), group by, order by使用详解

    最近做IM的时候遇到一个问题,同时用到了这三个关键字.就是查询一个人的离线消息详情,我们服务端返回给客户端显示的这个详情包括了三个内容,第一个要求列出离线这段时间哪些人或者群给你发了消息,第二个这其中 ...

  6. python实例化是什么意思_Python中实例化class的执行顺序示例详解

    前言 本文主要介绍了关于Python实例化class的执行顺序的相关内容,下面话不多说了,来一起看看详细的介绍吧 Python里对类的实例化时有怎样的顺序 一般来说一个类里面有类变量和方法,比如我们定 ...

  7. 【C++】C++中的头文件(.h)—详解(2)

    接上... [fishing-pan:https://blog.csdn.net/u013921430转载请注明出处] 头文件中写些什么 在上篇博客中写到头文件本身不参与编译,但是它们被包含到源文件中 ...

  8. mysql去重函数的使用方法_MySQL中使用去重distinct方法的示例详解

    一 distinct 含义:distinct用来查询不重复记录的条数,即distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而 ...

  9. python中类的构成_Python中类型关系和继承关系实例详解

    本文详细介绍了Python中类型关系和继承关系.分享给大家供大家参考.具体分析如下: 如果一个对象A持有另一个对象B的ID,那么检索到A之后就可以检索到B,我们就说存在一个A到B的导航.这种导航关系使 ...

  10. python中append函数解析_对python中的pop函数和append函数详解

    对python中的pop函数和append函数详解 pop()函数 1.描述 pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值. 语法 pop()方法语法: list. ...

最新文章

  1. 快速开发生命周期支持工具
  2. 使用定制的NSDictionary的方法,对NSArray进行排序(附:数组排序两种常见方法)
  3. Openstack_SQLAlchemy 修改数据库的表结构
  4. 【数据挖掘】贝叶斯信念网络 ( 马尔科夫假设 | 结构 | 有向无环图 | 参数 | 条件概率表 | 案例分析 )
  5. PAT1041 考试座位号 (15 分)
  6. STM32单片机启动文件startup_stm32f10x_hd.s详解
  7. linux服务器i o模型,高性能服务器框架--I/O模型
  8. 程序猿能力矩阵 — 敢測吗?看自己在哪个档次
  9. 根据用户输入的参数的个数来计算长方形或正方形的面积_小面积(2-4.5㎡)卫生间,怎么做干湿分离?(附:方案+参数+案例)...
  10. 搭建一个自己的文件上传服务器。
  11. visual studio 2010和注册码
  12. MAR DASCTF 2021
  13. vue3过渡动画详解
  14. 设计模式学习(十):Singleton
  15. Springboot359的医院病历管理系统
  16. EasyExcel生成带下拉列表或二级级联列表的Excel模版+自定义校验导入数据(附仓库)
  17. win10内存占用过高
  18. 计算机组成原理 微机,【2017年整理】计算机组成原理-微机实验指导书.doc
  19. python常用字符串格式化_Python字符串格式化常用手段及注意事项
  20. Windows XP SP2之初体验

热门文章

  1. 龙翔集团牵头起草全国首个月子中心服务等级划分团体标准开始实施
  2. 数据科普:期权的希腊字母 | 上(投资必知必会)
  3. 云队友丨传道士与雇佣兵:“电商之王”杰夫·贝佐斯传奇
  4. 生命中不仅仅只有代码
  5. 其实我想要的,只是一眼平阔
  6. 基于Spring Cloud Gateway 和 注册中心实现灰度发布
  7. redis高并发下的处理考勤打卡数据
  8. 调用bing图片html代码,网站背景调用必应Bing每日图片教程附接口
  9. Flare Network,跨越互操作性三难困境
  10. BZOJ1499: [NOI2005]瑰丽华尔兹