dual (Oracle中的一张内部表)
Oracle提供的最小的表,不论进行何种操作(不要删除记录),它都只有一条记录——'X'。是sys用户下的一张内部表,所有用户都可以使用DUAL名称访问,无论什么时候这个表总是存在。
例如:执行select * from dual,里面只有一条记录;执行insert into dual values('Y')后,再次查询dual表,仍然显示一条记录。
例如:执行一个查看当前日期的语句 select sysdate from dual,这条语句在放在放在任何一个oracle数据库当中都不会报错,所以一般做一些特定查询的时候用这个表是最稳妥的。
sequence
Oracle提供了sequence对象,由系统提供自增长的序列号,通常用于生成数据库数据记录的自增长主键或序号的地方。Sequence是数据库系统按照一定规则自动增加的数字序列。这个序列一般作为代理主键(因为不会重复),没有其他任何意义。
下面定义一个sequence
CREATE SEQUENCE SEQ_MANAGER_RECRUIT_ID
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9999
START WITH 71
NOCACHE
CYCLE ;
select SEQ_MANAGER_RECRUIT_ID.nextval from dual