zoukankan      html  css  js  c++  java
  • 序列与索引

    序列

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

      其他数据库:

     

      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)索引会影响 数据的插入,修改,删除的效率

  • 相关阅读:
    linux系统基本目录的介绍
    vue 组件之间的通信-父组件给子组件传递数据
    postgresql数据库查询特定日期的数据
    使用HttpRequest调用第三方接口
    postgresql数据库中的 rownum
    mybatis框架,执行插入语句的时候,如果没有字段传过来就赋值为空 进行判断
    postgresql数据库left join将主表中的数据查询出多条的解决办法
    前后端交互 -精度丢失问题解决
    vue找页面
    mysql语法 join on 表示什么
  • 原文地址:https://www.cnblogs.com/w-gao/p/7327107.html
Copyright © 2011-2022 走看看