美文网首页
序列、索引

序列、索引

作者: 李昱俊 | 来源:发表于2017-12-17 18:46 被阅读0次

    创建序列

    • sequencename:序列对象的名字

    • INCREMENT BY n:序列每次增加值,默认为1。

    • START WITH n :序列起始值n,该项省略,起始值为1

    • MAXVALUE n :序列最大值

    • NOMAXVALUE :指定序列无最大值

    • MINVALUE n :序列最小值;

    • NOMINVALUE :指定序列无最小值

    • CYCLE|NOCYCLE:表示序列在达到最大值或最小值之后是否继续产生序列值,NOCYLE表示不再产生,NOCYLE是默认选项。

    • CACHE n|NOCACHE:表示序列值被服务器预先分配并存储在内存中,NOCACHE表示不预先分配并存储,CACHE 20是默认选项

    例:创建序列test_seq,起始值为10,每次增长2,最大值100,最小值9,循环序列,每次缓存10

    create sequence test_seq
    start with 10
    increment by 2
    maxvalue 100
    misvalue 9
    cycle
    cache 10
    

    使用序列

    • 使用序列test_seq生成dept表中deptno列插入值:
    insert into dept
    values (test_seq.nextval,yanfabu,dalasi,)
    

    练习

    1. 创建一个序列,该序列起始值从1开始,无最大值,增量是1,不循环。
    CREATE sequence asd_seq
    
    1. 查询序列的当前值及下一个值
    SELECT asd_seq.nextval FROM DUAL
    SELECT asd_seq.currval FROM DUAL
    
    1. 使用第1题所建的序列,向部门表中插入两条记录,部门编号使用序列值,部门名称分别为:Education、Market,城市分别为:DALLAS、WASHTON
    INSERT INTO dept
    VALUES (asd_seq.nextval,'education','dallas')
    INSERT INTO dept
    VALUES (asd_seq.nextval,'maeket','washton')
    

    修改序列

    alter sequence test_seq
    increment by 4
    maxvalue 1000
    nocache 
    

    修改序列的语法没有START WITH子句。

    删除序列

    drop sequence test_seq (序列名)
    

    创建索引

    • 自动创建: 当有 PRIMARY KEY 或者 UNIQUE 约束时,数据库会自动创建一个索引。
    • 手动创建:
    create index idx_emp_ename(索引名)
    on emp(ename)
    

    例:在emp表的deptno和job的组合上创建索引

    create index idx_emp_deptnojob
    on emp(deptno,job)
    

    练习

    1. 使用子查询的方式,创建test表。
    create TABLE test
    AS
    SELECT * from emp
    
    1. 快速复制test表中的数据,复制到100w条左右
    INSERT INTO test
    SELECT * FROM emp
    
    1. 更新test表中的empno字段为rownum
    UPDATE TEST SET EMPNO=ROWNUM
    
    1. 查询test中empno为800000的记录值,记录查询执行时间。
    SELECT * FROM TEST
    WHERE empno=800000
    
    1. 在test表的empno字段上创建索引
    CREATE INDEX IDX_TEST_EMPNO
    ON test(empno)
    
    1. 重新执行第4题,对比查询时间
    SELECT * FROM TEST
    WHERE empno=800000
    

    删除索引

    drop index idx_emp_ename(索引名)
    

    相关文章

      网友评论

          本文标题:序列、索引

          本文链接:https://www.haomeiwen.com/subject/dmoywxtx.html