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 序列名
  • 相关阅读:
    linux centos 7.5 开启 postgresql 远程访问
    linux centos 7 开启 ftp
    CentOS 7.5 改IP后不生效无法上网解决办法
    Windows Server 2008R2 及上系统安装 Windows 可选功能
    C#只允许运行一个实例
    C# 命令行参数分割
    C# 获取所有已登录系统的用户名
    C#获取进程用户名
    psexec 用法
    检测 Visual C++ Redistributable Package 相应版本是否已安装
  • 原文地址:https://www.cnblogs.com/yuepeng/p/1983983.html
Copyright © 2011-2022 走看看