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伪列来访问该序列的值.可以伪列中选择值,但是不能操纵他们的值
- nextval:创建序列后第一次使用nextval时,将返回该序列的初始值.以后再引用nextval时,将使用increment by子句来增加序列值,并返回这个新值
- 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
删除也需要权限否则不允许删除
该命令只会删除同义词,不会删除对应的对象.
oracle中序列,同义词的创建的更多相关文章
- Oracle中Database Link的创建和Synonyms
在工作中我遇到过这样的一个问题,就是当我需要将远程主机上Oracle数据中某个表的数据copy到本地Oracle时,有多种方法可以实现.1.将所需要的数据导出到csv或其他格式的文档,复制到本地进行直 ...
- Oracle中序列的操作以及使用前对序列的初始化
Oracle中序列的操作以及使用前对序列的初始化 一 创建序列 create sequence myseq start with 1 increment by 1 nomaxvalue minva ...
- Oracle中序列(Sequence)详解
一 序列定义 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).不占用磁盘空间,占用内存. 其主要用途是生成表的主键值,可以在插入语句中引用,也 ...
- oracle中序列的使用
转载:http://blog.csdn.net/java958199586/article/details/7360152 序列: 是oacle提供的用于产生一系列唯一数字的数据库对象. l 自动提 ...
- oracle中scott用户的创建
原创作品,转载请在文章开头显眼位置注明出处:https://www.cnblogs.com/sunshine5683/p/10046716.html 今天,接着上次的学习进度继续前进,在此过程中,使用 ...
- Oracle 中序列使用
转 https://www.cnblogs.com/21-forever/p/11265924.html 序列: 1.Oracle是不支持自增长的: ①.序列是用于生成唯一.连续序号的对象: ②.序列 ...
- Oracle中序列(SEQUENCE)的使用一例
曾经在触发器中使用序列(SEQUENCE): create or replace trigger TRI_SUPPLIER before insert on SUPPLIER for each row ...
- 在Oracle中十分钟内创建一张千万级别的表
小表不会产生性能问题,大表才会.要练习SQL调优,还非得有大表不可.但数据不会自然产生,没有数据时如何创建一张千万级别的大表呢? 之前,我想用Oracle的批量插入语法去插入数据,此语法如下: INS ...
- Oracle中创建千万级大表归纳
从一月至今,我总共归纳了三种创建千万级大表的方案,它们是: 下面是这三种方案的对比表格: # 名称 地址 主要机制 速度 1 在Oracle中十分钟内创建一张千万级别的表 https://www.cn ...
随机推荐
- MySQL设置允许用户远程登录
. //登录数据库 mysql -u root -pvmwaremysql>use mysql; //%为所有ip都可以远程访问 mysql>update user set host = ...
- textarea输入框显隐文字
html: <textarea class="dxtd_text"></textarea> javascript: //管理端短信 var textarea ...
- DataGridView进度条列 C# WinForm
先看看效果,如果感兴趣,继续往下看…… 效果如下图所示: DataGridView里没有Pragress列,但有Image列,有了它我们可以自己绘图来实现进度条.其实实现起来并不困难. 首先在实体类增 ...
- winform文件拖入
//view.AllowDrop = true; ---------------------------------------- private void view_DragEnter(DragEv ...
- 4.JavaScript
1.简介 JavaScript 是一种轻量级的编程语言,是一种动态类型.弱类型.基于原型的脚本语言. JavaScript,通常缩写为JS,是一种高级的,解释执行的编程语言.JavaScript是一门 ...
- table表格td内内容自动换行
项目开发时,遇到问题:td内传入数据,全是字母,不会自动换行 一般字母数字/特殊符号的话,会被浏览器默认是一个字符串或者说一个单词,不会自动换行 所以需要设置一下,让表格内容自动换行. 1.给td标签 ...
- 《ArcGIS Runtime SDK for Android开发笔记》——问题集:使用TextSymbol做标注显示乱码
1.前言 在14年的时候写过一篇博客关于ArcGIS for Android 10.1.1API 中文标注导致程序异常崩溃问题,但是当时并没有很好的解决这样一个问题,也并没有深入研究分析这样的一个异常 ...
- JAVA的图片文字识别技术
从2013年的记录看,JAVA中图片文字识别技术大部分采用ORC的tesseract的软件功能,后来渐渐开放了java-api调用接口. 图片文字识别技术,还是采用训练的方法.并未从根本上解决图片与文 ...
- SQL Server(第一章) 创建表 删除表 创建主键约束、唯一约束、外键约束、CHECK约束、默认约束
1.Employees员工表 /** 创建Employees员工表 **/ USE TSQL2012 IF OBJECT_ID('dbo.Employees','U') IS NOT NULL DRO ...
- Win10桌面右键响应非常慢怎么办?
Win10桌面右键响应非常慢怎么办? 或许所有人升级到Win10都可能会遇上一个共同问题,右键桌面弹出菜单的反应非常非常的慢,你也感觉到了吧.在桌面点个右键需要等待五六秒左右的时间,这到底是不是系统问 ...