zoukankan      html  css  js  c++  java
  • oracle中序列,同义词的创建

    序列

      序列是用来生成唯一,连续的整数的数据库对象.序列通常用来自动生成主机那或唯一键的值.序列可以按升序排序,

    也可以按降序排序.例如,销售流水表中的流水号可以使用序列自动生成.

    创建序列语法:

    create sequence sequence_name

      [START WITH integer]

      [INCREMENT BY integer]

      [MAXVALUE integer|NOMAXVALUE ]

      [MINVALUE integer|]NOMAXVALUE ]

      [CYCLE|NOCYCLE]

      [CACHE integer|NOCACHE]

    • START WITH: 指定要生成的第一 一个序列号。对于升序序列其默认值为序列的最小值,对于降序序列,其默认值为序列的最大值。
    • INCREMENT BY: 用于指定序列号之间的间隔,其默认值为1. 如果为正值,则生成的序列将按升序排列:如果n为负值,则生成的序列将按降序排列。
    • MAXVALUE:指定序列可以生成的最大值。
    • NOMAXVALUE: 如果指定了NOMAXVALUE. Oracle 将升序序列的最大值设为10的27次方,将降序序列的最大值设为-1。这是默认选项。
    • MINVALUE:指定序列的最小值。MINVALUE 必须小于或等于START WITH的值,并且必须小于MAXVALUE。
    • NOMINVALUE:如果指定了NOMINVALUE. Oracle 将升序序列的最小值设为1.将降序序列的最小值设为-10的26次方。这是默认选项。
    • CYCLE:指定序列在达到最大值或最小值后.将继续从头开始生成值。
    • NOCYCLE:指定序列在达到最大值或最小值后,将不能再继续生成值。这是默认选项。
    • CACHE:使用CACHE选项可以预先分配一组序列号,并将其保留在内存中.这样可以更快地访问序列号。当用完缓存中的所有序列号时, Oracle 将生成另一组数值,并将其保留在缓存中。
    • NOCACHE:使用NOCACHE选项,则不会为加快访问速度而预先分配序列号。如果在创建序列时忽略了CACHE和NOCACHE选项,Orale将默认缓存20个序列号。

    创建序列

    create sequence seq1
           start with 1
           increment by 1
           maxvalue 300
           nocycle
           cache 10;

      创建序列之后,可以通过nextval和currval伪列来访问该序列的值.可以伪列中选择值,但是不能操纵他们的值

    1. nextval:创建序列后第一次使用nextval时,将返回该序列的初始值.以后再引用nextval时,将使用increment by子句来增加序列值,并返回这个新值
    2. currval:返回序列的当前值,即最后一次引用nextval时返回的值

    更改序列

      alter sequence 命令用于修改序列的定义,如果执行下列操作,则会修改序列

    • 设置或删除minvalue或maxvalue
    • 修改增量值
    • 修改缓存中序列号的数目

    修改语法如下

    alter sequence [schema.]sequence_name

      [INCREMENT BY integer]

      [MAXVALUE integer|NOMAXVALUE ]

      [MINVALUE integer|]NOMAXVALUE ]

      [CYCLE|NOCYCLE]

      [CACHE integer|NOCACHE]

    删除序列

    删除语法:drop sequence [schema.]sequence_name

    用于从数据库删除: drop sequence sequence_name

    同义词

      同义词就有点像应用分身,可以把一张表复制一份,不过需要用户有权限才能去创建,而且可以限定使用范围

    注意:创建的时候它不会管表存不存在,只有当使用的时候才会去调用

    作用

    • 简化SQL语句语句
    • 隐藏对象的名称和所有
    • 为分布式数据库的远程对象提供了位置透明性
    • 提供对对象的公共访问

    私有同义词

      私有同义词只能被当前模式的用户访问,且私有同义词名称不可与当前模式对象名称相同,要在当前模式下创建私有同义词,用户必须

    拥有create sysnonym系统权限.要在其他用户模式下创建私有同义词,用户必须拥有create any synonym系统权限

      创建私有同义词的语法:

    create [or replace] sysnonym [schema.] sysnonym_name

    for [schema.]object_name;

     create synonym system.empTow
     for scott.emp

    在语法中:

    • or replace:表示在同义词存在的情况下替换该同义词
    • synonym_name:表示要创建的同一词的名称
    • object_name: 指定要为之创建同义词的对象的名称
    • schema:当前用户名

    公有同义词

       公有同义词可被所有的数据库用户访问.公有同义词可以隐藏数据库对象的所有作者和名称,并降低SQL语句的复杂性.要创建

    公有同义词,用户必须拥有craete public synonym系统权限

    语法:

    create [or replace] public synonym 

    for [schema.]object_name;

    create or replace public synonym empTow
    for scott.emp

    删除同义词

    语法: drop synonym [schema.]object_name;

    drop public synonym empTow

    删除也需要权限否则不允许删除

    该命令只会删除同义词,不会删除对应的对象.

  • 相关阅读:
    android学习计划
    Android源码下载及开发环境的搭建
    I2C总线时序
    I2C原理和实例
    sql语句获取字段扩展属性
    浏览器兼容:火狐不支持webq格式图片
    js节流函数中的参数传递
    分享插件使用
    图片等比例自适应填充
    window.event在IE和Firefox的异同
  • 原文地址:https://www.cnblogs.com/hfx123/p/9927256.html
Copyright © 2011-2022 走看看