oracle中 ''dual'' 的含义

– 字符串查找 instr 函数
–格式:
– select instr(‘字符串’ ,’子字符串 ‘,开始查询的位置,第几个匹配的 ) from dual;
select instr(‘hellosdahedsd’,’he’,2) from dual;

– 补充: dual 是数据库中的 一个 虚(伪 )表(没实际意义的 ,但不可省略 )

/*dual是Oracle中的一个伪表,利用这个伪表可以设置或查看序列,或者是调用一些内置的函数,方便操作。
dual表就是oracle与数据字典自动创建的一张表,这张表是一个单行单列的表,这个表只有1列:DUMMY ,
数据类型为VERCHAR2(1),dual表中只有一个数据’X’, Oracle有内部逻辑保证dual表中永远只有一条数据。
dual表主要是用来选择系统变量或是求一个表达式的值。*/

/*虚表存在的原因:
dual可以理解为oracle中存在的一张虚拟表,因为sql命令强制要求数据从某表中取得,
也就是说sql语句中必须要有from命令,所以oracle定义了虚拟表dual,
提供一些特殊字段的查询,例如时间日期、算术运算等功能。
*/

/*简单理解就是:有时候用来使得select语句完整,符合语法规则而引入的这张虚表
以下有几个关于 dual 的使用 :*/

– 查询 dual 表 (表中只有 一行(X)一列 (DUMMY))
select *
from dual;
– 查询系统当前的 时间
select sysdate
from dual;
– 查询系统当前的 时间 并进行 格式化 (单引号”)
select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’)
from dual;
– 当一个简易的计算器
select 1+2
from dual;

猜你喜欢

转载自blog.csdn.net/weixin_42785557/article/details/81513586
今日推荐