zoukankan      html  css  js  c++  java
  • 索引.序列及同义词创建和管理

    索引.序列及同义词创建和管理
    /*********************创建B+树索引**********************/
    create unique index 索引名
         on 表 (字段)
         tablespace ts 名
         storage (参数)
         其他配置参数
    /*注:
         默认的索引创建方法.
         特点:1.不可标志NULL值2.无法标志重复率高的字段3.尺寸大4.速度快,大小表均衡
     
    /*******例子****************/
      1  create unique index stu_code_index
      2  on student(stu_code)
      3* tablespace indx
      4  /
     
    索引已创建。
     
    /*********************创建位图索引************************/
    create bitmap index 索引名
        on 表(字段)
        storage参数
        其他配置参数
    /*注:
         适合枚举字段,例如性别.一般在一个列上的值重复超过100次以上的就可以创建位图索引.
         特点:1.可以标注NULL值2.可标注重复率高的字段3.尺寸小
    */     
     
    /************例子************/

      1  create bitmap index stu_sex_index
      2* on student(stu_sex)
      3  /
     
    索引已创建。
     
    /***************创建函数索引*****************************/
    create index 索引名
        on 表(函数(字段))
         storage参数
        其他配置参数
     
    /*******例子**********/
    SQL> create index stu_name_index
      2  on student(upper(stu_name))
      3  ;
     
    索引已创建。
    /******************************修改索引存储特性************************/
    alter index 名 storage(参数)
    /*注:
         对ORACLE自动创建的索引的修改
         alter index using index tablespace indx
         存储参数INITIAL和EXTENTS参数创建后不能修改
     
    /******************合并索引(B+树)****************************************/
    alter index 名 coalesce
    /*注:
        合并索引只是简单的将B树节点中的存储碎片合并在一起,不改变索引的物理组织结构.
     
    /*************重建索引********************************************/
    alter index 名rebuild
    /*注:
         能够消除存储碎片,改变所有的存储参数,可以移到别的表空间,可以使用create index的各种子句
     
    /*************例子**************/

    SQL> alter index stu_code_index rebuild;
     
    索引已更改。
     
    /*******************************删除索引*******************************/
    drop index 名
    /*注:
         删除一个表自动删除相关索引
         如索引是通过定义约束自动创建,通过删除或禁用约束删除对应索引
     
    /***************例子**************/

    SQL> drop index stu_code_index;
     
    索引已丢弃。
     
    /************************监视索引**************************************/
    alter index 名 monitoring usage
    在V$OBJECT_USAGE中查看正在被监视的索引(填充率%80 较危险需重建)
    /************例子************/
    SQL> alter index stu_sex_index monitoring usage;
     
    索引已更改。

    SQL> select * from v$object_usage;
     
    INDEX_NAME                     TABLE_NAME                     MON USE
    ------------------------------ ------------------------------ --- ---
    START_MONITORING    END_MONITORING
    ------------------- -------------------
    STU_SEX_INDEX                  STUDENT                        YES NO
    11/02/2006 21:28:58
     
    /********************查询索引************************/
    select * from all_indexes          查询所有的索引
                  all_ind_columns      一个索引对应的字段
                  all_ind_expressions  查询函数索引的表达式
     
    /**************************************B+树索引分区*****************************************/
    /*注:
         本地分区:为表的每个分区创建一个独立的索引区(基表必须分区)
    create index 名 表(字段) local
    /*********例子**********/
    create index stu_code_pt
    on student(stu_code) local 
     
    /*************************/
    /*注:
        字段一和二相同
        全局分区:1只使用于范围分区2全局索引各个分区间不是互相独立,与各表之间的分区不是一一对应
    create index 名 on 表(字段1)
    global partition by range(字段2)
    (  partition 区名 values less than(条件),
       .......
    )
    /*
       全局非分区索引:只创建一个独立的索引
     create index 名 on 表(字段)
     
    /***************************创建视图*******************************/
    create or replace view 名
    列定义 AS SQL语句
    with check option/with read only
    /*推荐使用下面的语法:
    create view 名
    ( 字段1,--注释
      字段2,--注释
    AS
       SQL语句
     
    /**********删除视图************/
    drop view 名
     
    /**************************************创建序列********************************/
    create sequence 名      (下面的参数可以不写,取默认值)
    increment by n  --步长  1
    start with n --开始     1
    nomaxvalue/maxvalue n
    nocycle                --不能重复使用
    cache       --读几个到内存 10
     
    /*******例子**********/
    /*创建
    SQL> create sequence sq_no
      2  increment by 1
      3  start with 1000
      4 
    SQL> /
     
    序列已创建。
     
    /**********激活序列**************/
    dual---虚表
    currval---序列当前值
    nextval---序列生成的下一个值
    /*********例子********/
      1* select sq_no.nextval from dual
    SQL> /
     
       NEXTVAL
    ----------
          1000
     
    /*******查询当前序列********/
    SQL> select sq_no.currval from dual;
     
       CURRVAL
    ----------
          1000
     
    /******序列插入值********/

      1* insert into student values(sq_no.nextval,'张','f')
    SQL> /
     
    已创建 1 行。
    SQL> select * from student;
     
    STU_CODE   STU_NAME             S
    ---------- -------------------- -
    1002       张                   f
     
    /****在单据时读取最大值生成自动增长***********/
    /注:
       select '前缀' || lpad(sq_no.nextval,长度,'补0') from dual
    /*******例子**********/
      1* select 'xs' || lpad(sq_no.nextval,5,'0') from dual
    SQL> /
     
    'XS'||LPAD(S
    ------------
    xs01004
     
    /*************************修改序列**************/
    alter sequence 名 参数
    /*注:序列的起始值不能改,在对序列修改时、,将丢失缓存中的序列值
     
    /************删除序列**********/
    drop sequence 名
     
    /*********************************同义词******************************************/
    创建:
    create public synonym 名
    for 用户.对象
    需在SYSTEM用户下创建
    /**********例子************/
      1   create public synonym emp
      2* for scott.emp
      3  ;
     
    同义词已创建。
     
     select * from emp;
     
     EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM     DEPTNO
    ------ ---------- --------- ---------- ---------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-12月-80        800                    20
      7499 ALLEN      SALESMAN        7698 20-2月 -81       1600        300         30
      7521 WARD       SALESMAN        7698 22-2月 -81       1250        500         30
      7566 JONES      MANAGER         7839 02-4月 -81       2975                    20
      7654 MARTIN     SALESMAN        7698 28-9月 -81       1250       1400         30
      7698 BLAKE      MANAGER         7839 01-5月 -81       2850                    30
      7782 CLARK      MANAGER         7839 09-6月 -81       2450                    10
      7788 SCOTT      ANALYST         7566 19-4月 -87       3000                    20
      7839 KING       PRESIDENT            17-11月-81       5000                    10
      7844 TURNER     SALESMAN        7698 08-9月 -81       1500          0         30
      7876 ADAMS      CLERK           7788 23-5月 -87       1100                    20
      7900 JAMES      CLERK           7698 03-12月-81        950                    30
      7902 FORD       ANALYST         7566 03-12月-81       3000                    20
      7934 MILLER     CLERK           7782 23-1月 -82       1300                    10
     /************删除同义词************/
    drop public synonym 名
     
     
            
  • 相关阅读:
    浅谈Python常用英文单词
    python web框架 Django的APP以及目录介绍 2
    Python中的enumerate函数
    python web框架 django wsgi 理论
    python web框架 django 工程 创建 目录介绍
    python web框架 django工程的创建
    mysql c 终止 mysql输入语句模式
    前端 html input标签 placeholder属性 标签上显示内容
    img 标签注意 默认img标签,有一个1px的边框 img{ border: 0; }
    前端 html input标签 disable 属性
  • 原文地址:https://www.cnblogs.com/wenjl520/p/1445767.html
Copyright © 2011-2022 走看看