• SQL语句复习【专题八】


    SQL语句复习【专题八】

    序列 Sequence。数据库对象是 oracle 专有的。
    作用:可以将某一列的值使用序列,来实现自动增长的功能。
    访问序列的值。【序列有两个属性 nextval currval】
    获得序列的下一个自增(默认自增1)之后的值。每访问一次nextval 序列的值都会自增一次。

    ---创建序列:
    create sequence seq_student
    select seq_student.nextval from dual
    --获得序列当前值 currval 在创建 序列开始,不能直接访问,必须访问一次 nextval 属性之后才能访问 currval
    select seq_student.currval from dual
    --使用序列的值
    select * from student
    insert into student values (seq_stu.nextval,'dilraba'||seq_stu.currval,30,'女','000002',null);
    --设置序列的详细的属性
    create sequence seq_stu
    increment by 2 --设置自增量
    start with 100
    maxvalue 100000
    minvalue 100
    cycle --| nocycle
    --drop 删除序列
    drop sequence seq_student

    数据库对象 -- 索引【索引的作用:用来加速检索数据的】
    索引是被动使用的,如果某些字段被检索的频率比较高,那么就可以根据该字段生成对应的索引,来加速针对该字段的检索的速度
    --索引的创建方式:
    --1:自动创建:primary key unique 类,oracle会自动的针对该类的数据生成索引。
    --2:手动创建
    ---创建索引
    create index index_student_sname on student(sname)
    --索引一旦创建自动使用
    truncate table student
    --带索引的检索
    select * from student where sname='小白200'--0.016
    --删除索引
    drop index index_student_sname

    使用索引的要点:
    ①索引数据可能要占用大量的存储空间。
    ②索引改善检索操作的性能,但降低数据插入、修改和删除的性能。在执行这些操作时,DBMS必须动态地更新索引。
    ③限制表中索引的数目。索引越多,在修改表时对索引做出修改的工作量越大
    ④并非所有数据都适合于索引。唯一性不好的数据(如省)从索引得到的好处不比具有更多可能值的数据(如姓名)从索引得到的好处多
    ⑤索引用于数据过滤和数据排序。如果你经常以某种特定的顺序排序数据,则该数据可能是索引的备选。
    ⑥可以在索引中定义多个列(如省加城市),这样的索引只在以省加城市的顺序排序时有用。如果想按城市排序,则这种索引没有用处。

    小总结
    1、约束
    ①域完整性约束:非空 not null 检查 check
    ②记录完整性约束:主键 primary key 唯一 unique
    ③参照完整性约束:外键 foreign key
    ④表级约束、列级约束(not null,只能列级)
    2、删除主表的记录的时候,关于从表对主表字段引用的处理的方式
    ①受限制的 restrict 不允许删除。
    ②cascade:从表一并删除
    ③set null: 设置为null
    3、序列:Sequence oracle 特有的数据库对象。
    nextval(自增并返回)、currval(返回序列当前值)
    4、index 索引。被动使用。为了加快 检索数据的速度。
    ①自动创建:主键 primary key + unique 。拥有这两种约束的字段,自动会给每一个数据创建对象的索引。
    ②会降低,DML操作。
    ③如果重复的数据比较多(不建议)

  • 相关阅读:
    [BZOJ 4034][HAOI2015]树上操作(欧拉序列+线段树)
    [BZOJ 4318]OSU!(期望dp)
    [Codeforces Round #146 (Div. 1) B]Let's Play Osu!(期望Dp)
    [Codeforces Round #261 (Div. 2) E]Pashmak and Graph(Dp)
    [Codeforces Round #301 (Div. 2) D]Bad Luck Island(概率Dp)
    [Codeforces Round #284 (Div. 1) B]Name That Tune(概率Dp)
    [UVALive 7143]Room Assignment(Dp)
    [BZOJ 1076][SCOI2008]奖励关(期望+状压Dp)
    【DBMS HKUST slides8】范式及分解算法 知识点总结
    【DBMS HKUST slides1~6】数据库管理系统 知识点总结
  • 原文地址:https://www.cnblogs.com/cao-yin/p/10502937.html
Copyright © 2020-2023  润新知