insert into emp(empno,job,comm) values (1000,'小李', 'clerk',null);
select emopno,job,comm from emp where empno = 1000;
insert into emp(ename, job,hirdate,empno) vlaues('小马','CLERK','10-1月-03',1001);
insert into dept values (50,'培训部','深圳');
insert into emp(empno,ename,job,sal) values(1005,'杨华','clerk',null);
create table manager as select empno.ename,sal from emp where job ='MANAGER';
insert into manager select empno,ename,sal from emp where job ='clerk';
create sequence abc increment by 1 start with 2000 maxvalue 999999 cycle nocache;
INCREMENT BY:用于定义序列的步长,如果省略则默认为1,如果负值,则代表序列的值是按照此步长递减的。
START WITH:定义序列的初始值,默认为1.
MAXVALUE:定义序列生成器能产生的最大值
CYCLE和NOCYCLE:表示当序列生成器的值达到限制值后是否循环。CYCLE代表循环,NOCYCLE代表不循环。
CACHE:定义存放序列的内存块的大小,默认为20.NOCACHE表示不对序列进行内存缓冲。
注意:序列如果用来产生主键,不建议使用CYCLE选项。
insert into manager values(abc.nextval,'小王',2500);
insert into manager values(abc.nextval,'小赵',2800);
select empno,ename, sal from emp;
NEXTVAL:返回下一个可用的序列值。
CURRVAL:获得当前的序列值。
当使用abc.NEXTVAL时,一个新的序列数被产生并且当前的序列数被放入CURRVAL,而CURRVAL伪列用于查询用户刚才产生的序列数。
1.不能修改序列的起始值,如果想以不同的数字重新开始一个序列,必须删除序列重建。
2.序列的最小值不能大于序列的当前值。
3.序列的最大值不能小于序列的当前值。
4.修改后的序列规则不影响以前的序列值,只有未来的序列值会受到影响。
5.用户必须具有ALTER SEQUENCE的权限。
- drop sequence abc;
update emp set sal = 3000 where empno = 1000;
update emp set hiredate = sysdate ,deptno = 50 where empno = 1000;
update emp set job = 'manager' ,sal =4000 where empno = 7788;
update emp set sal = sal+100;
update emp set sal = sal+sal*10% where deptno = 10;
update manager set (ename,sal) = (select ename ,sal from emp where empno=7788)where empno=1000;
delete from emp where empno =1000;
select * from emp where empno =1000;
truncate table manager;