/*为emp表的empno字段,创建序列emp_empno_seq,create sequence 序列名*/
create sequence emp_empno_seq;
/*删除序列emp_empno_seq,drop sequence 序列名*/
drop sequence emp_empno_seq;
/*查询emp_empno_seq序列的当前值currval和下一个值nextval,第一次使用序列时,必须选用:序列名.nextval*/
select emp_empno_seq.nextval from dual;
select emp_empno_seq.currval from dual;
/*使用序列,向emp表插入记录,empno字段使用序列值*/
insert into emp(empno) values(emp_empno_seq.nextval);
insert into emp(empno) values(emp_empno_seq.nextval);
insert into emp(empno) values(emp_empno_seq.nextval);
/*修改emp_empno_seq序列的increment by属性为20,默认start with是1,alter sequence 序列名*/
alter sequence emp_empno_seq
increment by 20;
/*修改emp_empno_seq序列的的increment by属性为5*/
alter sequence emp_empno_seq
increment by 5;
/*修改emp_empno_seq序列的start with属性,行吗?*/
alter sequence emp_empno_seq
start with 100;--无法变更启动号错误
/*有了序列后,还能为主健手工设置值吗?*/
insert into emp(empno) values(9999);
insert into emp(empno) values(7900);--可以
select * from emp;--测试插入值情况
<id name="id" column="id">
<generator class="increment/identity/uuid/【sequence】/【native】"/>
</id>
/*为emp表的empno单个字段,创建索引emp_empno_idx,叫单列索引,create index 索引名 on 表名(字段,...)*/
create index emp_empno_idx
on emp(empno);
/*为emp表的ename,job多个字段,创建索引emp_ename_job_idx,多列索引/联合索引*/
create index emp_ename_job
on emp(ename,job);
如果在where中只出现job不使用索引
如果在where中只出现ename使用索引
我们提倡同时出现ename和job
注意:索引创建后,只有查询表有关,和其它(insert/update/delete)无关,解决速度问题
/*删除emp_empno_idx和emp_ename_job_idx索引,drop index 索引名*/
drop index emp_empno_idx;
drop index emp_ename_job_idx;