美文网首页
序列、索引

序列、索引

作者: 李昱俊 | 来源:发表于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(索引名)

相关文章

  • python-序列类型

    序列类型的索引体系 序列类型常用函数

  • 学习python分片

    序列和索引 既然谈到分片,就脱离不了序列和索引这些概念。什么是序列呢? 在Python中,最基本的数据结构是序列(...

  • 序列、索引

    创建序列 sequencename:序列对象的名字 INCREMENT BY n:序列每次增加值,默认为1。 ST...

  • Python基础语法了解一下(二)

    序列容器索引 布尔逻辑 语句块 模块/名称导入 条件语句 数学计算 错误 序列容器索引 Sequence Cont...

  • 1. 关于列表理解&使用的几个错误

    什么是python中的序列?序列表示有序的排列,每个元素都有相应的位置,可进行索引访问得到。序列具有索引、切片、加...

  • pandas基础教程——Day3

    本章内容 多层索引 时间序列 一、多层索引 1、Series可以创建多层索引: 2、DataFrame创建多层索引...

  • Python--序列

    通用序列操作:索引、切片、加、乘、成员资格检查、序列长度、最大最小元素 1、索引 2、切片 2.1、步长 开始点的...

  • 2020-01-09

    列表与元组 通用序列操作 索引 、分片、序列相加、乘法、成员资格、长度、最小值和最大值 索引 indexing 分...

  • 序列操作

    # 序列的操作 ''' 序列的索引与反向索引 python是由C编写,序列实际上是一个对象 是一个用数组存储的字符...

  • 通用序列操作

    序列总览 通用序列操作 索引 分片 序列相加 乘法 成员运算 长度,最小值和最大值

网友评论

      本文标题:序列、索引

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