zoukankan      html  css  js  c++  java
  • Oracle的视图、索引、同义词和序列

    一、视图
    create view viewname as select语句 [with read only] | [with check option]
    drop view viewname
    alter view viewname as select语句


    二、索引
    1. 简介

    • 查询性的表,要多建索引; 修改型的表,要少建索引
    • 索引有唯一索引的和非唯一索引两种
    • oracle提供了B树,散列,位图等索引类型,主要使用B树索引和位图索引。
    • B树索引是默认条件下创建的,可以是唯一的也可以是非唯一的,可以是基于一列的,也可以是多列的。B树索引在检索高基数数据列时有很好的性能,对于取出较小的数据,B树索引也更有效。但是当检查范围超过表的10%时,就不行了。
    • 位图索引主要用于决策支持系统或者静态数据,不支持行级锁定。位图索引可以是单列的,也可以是多列的。最好用于小型或者中型群集列。位图以一种压缩格式存放,占用的空间小。

    2. 创建索引
    create [unique] index 索引名 on 表名(fieldname[asc|desc], fieldname,...) [with {primary| disallownull|ignorenull}] tablespace 表空间名

    此外,constraint条件子句的功能类似于索引,并且它也可以建立表之间的关联性。注意这个子句是create表的子句。
    单一字段索引语句格式:constraint constraintname {primary key|unique|references foreigntable[(foreignfield1, foreignfield2)]}
    多字段索引语句格式:
    constraint constraintname {primary key(primary1, primary2,...) | unique(unique1, unique2,...)|foreign key(ref1, ref2,...)| references foreigntable[(foreignfield1, foreignfield2,...)] }

    三、同义词

    • 同义词是表,视图,序列,存储函数,包,快照,或者其他同义词的另一个名字。同义词有公共的和私有的之分。在本地数据库同义词还可以通过链接表示另一个数据库的对象。使用同义词可以有以下优点:引用对象无需指出对象的所有者和数据库
    • 为一个表创建同义词的方法是:create public|private name for [username.]tablename
    • 不能为抽象数据类型创建同义词,当创建同义词时,oracle不检查同义词的有效性。所以用户应该自己测试。删除同义词的语句是drop SYNONYM name(private的),或者drop public SYNONYM name(public的).
    • 用户可以删除自己的任何私有同义词,但是要想删除其他用户的私有同义词,必须拥有drop any synonym的权限,要想删除public同义词,必须拥有drop public synonym权限。

    四、序列

    • 序列是多个用户能够以此产生唯一整数的数据库对象,可以用它来自动产生主键值,当然不必是只包含序列的值。使用序列时,不保证将生成一系列连续的值
    • 创建序列的语句是create sequence 序列名 keyword。其中的keyword包括start with, increment by(降序为负), minvalue(默认为nominvalue,即1和-10E26), maxvalue(默认为nomaxvalue,即-1和10E26), cycle, nocycle, cache, nocache
    • 修改序列的语句是alter sequence 序列名 keyword
    • 删除序列的语句是drop sequence 序列名
  • 相关阅读:
    EntityFramework优缺点
    领导者与管理者的区别
    七个对我最好的职业建议(精简版)
    The best career advice I’ve received
    Difference between Stored Procedure and Function in SQL Server
    2015年上半年一次通过 信息系统项目管理师
    Difference between WCF and Web API and WCF REST and Web Service
    What’s the difference between data mining and data warehousing?
    What is the difference between a Clustered and Non Clustered Index?
    用new创建函数的过程发生了什么
  • 原文地址:https://www.cnblogs.com/yuepeng/p/1983983.html
Copyright © 2011-2022 走看看