oracle同义词表数量限制,Oracle从零开始16——表的管理06——序列和同义词

7.序列(重点)

在很多数据库系统中都寻在一个自动增长的列,如果要想在Oracle中完成自动增长只能依靠序列完成,所有的自动增长操作,需要用户手工完成处理。

创建序列

创建序列的语法格式为:

CREATE SEQUENCE 序列名

[INCREMENT BY n]

[START WITH n]

[{MAXVALUE n|NOMAXVALUE}]

[{MINVALUE n|NOMINVALUE}]

[{CYCLE|NOCYCLE}]

[{CACHE n|NOCACHE}];

1)INCREMENT BY用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表Oracle序列的值是按照此步长递减的。

2)START WITH 定义序列的初始值(即产生的第一个值),默认为1。

3)MAXVALUE 定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增Oracle序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是-1。

4)MINVALUE定义序列生成器能产生的最小值。选项NOMAXVALUE是默认选项,代表没有最小值定义,这时对于递减序列,系统能够产生的最小值是?10的26次方;对于递增序列,最小值是1。

5)CYCLE和NOCYCLE 表示当序列生成器的值达到限制值后是否循环。CYCLE代表循环,NOCYCLE代表不循环。如果循环,则当递增序列达到最大值时,循环到最小值;对于递减序列达到最小值时,循环到最大值。如果不循环,达到限制值后,继续产生新值就会发生错误。

6)CACHE(缓冲)定义存放序列的内存块的大小,默认为20。NOCACHE表示不对序列进行内存缓冲。对序列进行内存缓冲,可以改善序列的性能。

范例:创建一个myseq的序列,验证自动增长的操作

21955048200570930.jpg

序列创建完成以后,所有的自动增长应该有用户自己处理,所以在序列中提供了以下两种操作:

nextVal:取得序列下一个内容

currVal:取得序列的当前内容

范例:建立一张表,以验证序列的操作

109493765957583094.jpg

下面向表中添加数据,需要手工使用序列

范例:使用序列

2800113068334743149.jpg

将以上的语句执行五次,观察序列变化

2800113068334743150.jpg

从结果中发现,nextVal的内容式中在进行自动增长的操作,而curr使用取出当前操作的序列结果。也就是说现在这种序列,每次增长的幅度是1,那么也可以修改增长幅度。使用以下参数:

每次增长幅度:INCREMENT BY 长度;

范例:重新建立序列(先删,后建)

2800113068334743151.jpg

序列已经正常创建,现在重建testseq表,并插入数据

2800113068334743156.jpg

21955048200570967.jpg

增幅变成了2。默认情况序列是从1开始的,可以使用START WITH指定

2733122023877603117.jpg

2733122023877603118.jpg

还可以设定最大最小值,是否是循环

范例:创建一个序列,让其取值固定在1、3、5、7、9循环

可以使用PLSQL工具

2800113068334743165.jpg

2733122023877603127.jpg

从这里拷贝代码即可。

2800113068334743175.jpg

得到结果:

21955048200570996.jpg

从实际来看序列使用最多的语法:CREATE SEQUENCE序列

2)删除序列

DROP SEQUENCE 序列名;

8.同义词(了解)

之前用过这样的语句:SELECT SYSDATE FROM dual;

1114359432814625967.jpg

dual是一个虚拟表,那么这个表是在哪里定义的呢?

现在是有system链接数据库,看看此表示是否属于system用户

2800113068334743186.jpg

通过system用户没有查到这个表,下面试试超级管理员:

2781535719871839741.jpg

在sys用户下存在此表,此表在sys下,但是scott用户可以直接通过表名称访问,那么正常情况下要访问不同用户的表需要使用"用户名.表名称"。实际上这就是同义词的作用,同义词可以让其他用户通过一个名称方便的访问"用户名.表名称"。

创建同义词的语法:

CREATE SYNONYM 同义词名称 FOR 用户名.表名称;

范例:将scott.emp定义emp的同义词

1114359432814626001.jpg

这样就可以在非scott用户的情况下直接查询emp表了

2799831593358032582.jpg

删除同义词:

DROP SYNONYM 同义词名称;

2800394543311453861.jpg

注意:此种特性只适用于Oracle数据库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值