序列

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

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

创建序列语法:

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个序列号。

创建序列

  1. create sequence seq1
  2. start with 1
  3. increment by 1
  4. maxvalue 300
  5. nocycle
  6. 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;

  1. create synonym system.empTow
  2. for scott.emp

在语法中:

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

公有同义词

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

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

语法:

create [or replace] public synonym 

for [schema.]object_name;

  1. create or replace public synonym empTow
  2. for scott.emp

删除同义词

语法: drop synonym [schema.]object_name;

  1. drop public synonym empTow

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

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

oracle中序列,同义词的创建的更多相关文章

  1. Oracle中Database Link的创建和Synonyms

    在工作中我遇到过这样的一个问题,就是当我需要将远程主机上Oracle数据中某个表的数据copy到本地Oracle时,有多种方法可以实现.1.将所需要的数据导出到csv或其他格式的文档,复制到本地进行直 ...

  2. Oracle中序列的操作以及使用前对序列的初始化

    Oracle中序列的操作以及使用前对序列的初始化   一 创建序列 create sequence myseq start with 1 increment by 1 nomaxvalue minva ...

  3. Oracle中序列(Sequence)详解

    一 序列定义 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).不占用磁盘空间,占用内存. 其主要用途是生成表的主键值,可以在插入语句中引用,也 ...

  4. oracle中序列的使用

    转载:http://blog.csdn.net/java958199586/article/details/7360152 序列: 是oacle提供的用于产生一系列唯一数字的数据库对象. l  自动提 ...

  5. oracle中scott用户的创建

    原创作品,转载请在文章开头显眼位置注明出处:https://www.cnblogs.com/sunshine5683/p/10046716.html 今天,接着上次的学习进度继续前进,在此过程中,使用 ...

  6. Oracle 中序列使用

    转 https://www.cnblogs.com/21-forever/p/11265924.html 序列: 1.Oracle是不支持自增长的: ①.序列是用于生成唯一.连续序号的对象: ②.序列 ...

  7. Oracle中序列(SEQUENCE)的使用一例

    曾经在触发器中使用序列(SEQUENCE): create or replace trigger TRI_SUPPLIER before insert on SUPPLIER for each row ...

  8. 在Oracle中十分钟内创建一张千万级别的表

    小表不会产生性能问题,大表才会.要练习SQL调优,还非得有大表不可.但数据不会自然产生,没有数据时如何创建一张千万级别的大表呢? 之前,我想用Oracle的批量插入语法去插入数据,此语法如下: INS ...

  9. Oracle中创建千万级大表归纳

    从一月至今,我总共归纳了三种创建千万级大表的方案,它们是: 下面是这三种方案的对比表格: # 名称 地址 主要机制 速度 1 在Oracle中十分钟内创建一张千万级别的表 https://www.cn ...

随机推荐

  1. 用 JS 做一个数独游戏(二)

    用 JS 做一个数独游戏(二) 在 上一篇博客 中,我们通过 Node 运行了我们的 JavaScript 代码,在控制台中打印出来生成好的数独终盘.为了让我们的数独游戏能有良好的体验,这篇博客将会为 ...

  2. [转]png图片压缩大小但是不改变透明部分

    降低PNG图片存储大小方法,图片压缩方法,如何降低PNG图片存储大小?前提是分辨率和尺寸大小不变,图形的透明部分不变.请看如下办法,亲测可用. 1. 将PNG图片用PS打开. 2. 图像-模式-8位/ ...

  3. jq回到顶部效果分析

    在浏览网页时,超出屏幕高度就会出现提上点击回到顶部的图标,点击即可回到页面顶部. 用到的知识点如下: 1.首先控制图标的显示和隐藏,先要获取浏览器的高度. var wHeight = $(window ...

  4. AWS的redhat7中安装jdk8

    下载jdk8 wget https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/ ...

  5. Jvm方法区以及static的内存分配图

    前面的几篇都没有太明确地指出 方法区 是什么?现在通过一些资料的收集和学习,下面做一些总结 什么是方法区: 方法区是系统分配的一个内存逻辑区域,是JVM在装载类文件时,用于存储类型信息的(类的描述信息 ...

  6. 使用js来执行全屏

    当用户按下F11事件,浏览器为触发自身全屏功能,这个过程我们一般是不可控制的,即使是监听了F11的键盘事件,退出全屏的时候,我们也捕捉不到退出全屏触发的事件.所以,我们就用程序自己去实现F11的功能, ...

  7. js获取url的参数和值的N种有效方法

    js获取url的参数和值的N种有效方法 function getParameterByName(name) { name = name.replace(/[\[]/, "\\\[" ...

  8. Dynamics CRM 4.0升级Dynamics CRM 2013后全局Ribbon的修改

    最近在为一个客户在Dynamics CRM 4.0到Dynamics CRM 2013的升级,升级之后发现原来在Dynamics CRM 4.0中定义的全局Ribbon按钮像牛皮癣一样,在每个实体页面 ...

  9. Azure本月最新活动,速度Mark!

    桃花夭夭,渌水盈盈,就这样四月的脚步迫不及待地来了.为了帮助您能在第一时间了解 Azure 最新的活动,我们推出每月活动合集,你准备好了吗,一起来看吧! 立即访问http://market.azure ...

  10. centos部署vue项目

    参考链接 nodejs服务器部署教程二,把vue项目部署到线上 打包 #在本地使用以下命令,打包 npm run build #打包之后本地会出现dist文件夹.将dist文件夹以及package.j ...