• 序列与索引


    序列

      定义:在一张表中,我们需要添加一条记录之后,有对应的主键自动增长(主键自增),这种行为称为序列。

      其他数据库:

     

      sql server :   id int primary key identity(1,1)

      my sql :   id int primary key auto_increment

     

      案例:

            create sequence myseq

            start with  1                              --初始值

            increment by  1                  –增长多少

            minvalue   1                             --最小值

           maxvalue 30000                       --最大值

      cycle                                        --表示序列增长到30000后,再循环从1开始,否则nocycle

      nocache                                    --nocache表示不缓冲,【cache10:表示一次产生10个号供你使用,优点:提高效率,缺点:容易产生跳号问题】

      

      使用:

     

          create table user4(id number primary key,name nvarchar2(32)); 

          insert into user4 values(myseq.next.val,’jack’);

          ------------------------------

          myseq:表示序列的名字,nextval:关键字

    序列的细节: 

          (1)可以为表的列自动产生  值

          (2)  由用户创建数据库对象,并由多个用户共享

                                system 可以使用scott创建的序列

                如果system 使用scott创建的序列,从什么开始增长?

                 答:接着增长

          (3)一般用于主键或唯一列(unique)

          (4)可以使用序列名.currval 来查看当前的序号(* 必须先使用 .nextval)

                                select myseq.currval from dual;

    索引 

     索引的分类:

     (1)单列索引

         create index 索引名 on 表名(列名);

     (2)复合索引

         create index 索引名 on 表名(列名1,列名2);

    索引的应用场合:

    (1)在大表建立索引才有意义。

    (2)在where子句或是连接条件上经常引用的列上建立索引。

    (3)索引的层次不要超过4层。

    (4)在逻辑型字段上(男/女),或者固定的列上不要建立索引。

    索引的缺点:

         (1)建立索引会增加表的大小(1.2倍)。

         (2)索引会影响 数据的插入,修改,删除的效率

  • 相关阅读:
    在程序中向水晶报表传参数,以及在程序中指定报表源
    运行Web程序时提示无法使用调试
    TreeView控件节点重命名后没有进入beginEdit的解决方案
    网络负载平衡(转)
    纵横表转交叉表
    重绘datagrid,包括强迫显示某行
    datagrid添加事件
    我的页面模板算法
    C++函数重载
    关于string.empty 与 "" 内存分配
  • 原文地址:https://www.cnblogs.com/w-gao/p/7327107.html
Copyright © 2020-2023  润新知