ORACLE数据库中,dual表究竟有什么作用,怎么老师上课总用这个表?

ORACLE数据库中,dual表究竟有什么作用,怎么老师上课总用这个表?,第1张

这个表实际上是sys用户下的一个表,只有一个字段,一条记录,其他用户看到的只是一个公共同义词,所有用户都有权限查看这个公共同义词-【dual】使用这个表的好处是无论什么时候这个表总是存在的,例如执行一个查看当前日期的语句 select sysdate from dual

这条语句在放在放在任何一个oracle数据库当中都不会报错,所以一般做一些特定查询的时候用这个表是最稳妥的。

这个应该是oracle里的吧?

同义词 synonym

相当于alias(别名),比如把user1.table1在user2中建一个同义词table1

create synonym table1 for user1.table1

这样当你在user2中查select * from table1时就相当于查select * from user1.table1

序列比较复杂,

在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。

1、Create Sequence

你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,

CREATE SEQUENCE emp_sequence

INCREMENT BY 1 -- 每次加几个

START WITH 1 -- 从1开始计数

NOMAXVALUE -- 不设置最大值

NOCYCLE -- 一直累加,不循环

CACHE 10

一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL

CURRVAL=返回 sequence的当前值

NEXTVAL=增加sequence的值,然后返回 sequence 值

比如:

emp_sequence.CURRVAL

emp_sequence.NEXTVAL

可以使用sequence的地方:

- 不包含子查询、snapshot、VIEW的 SELECT 语句

- INSERT语句的子查询中

- NSERT语句的VALUES中

- UPDATE 的 SET中

可以看如下例子:

INSERT INTO emp VALUES

(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20)

SELECT empseq.currval FROM DUAL


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6423427.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-21
下一篇 2023-03-21

发表评论

登录后才能评论

评论列表(0条)

保存