欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

oracle初识007 序列+同义词

程序员文章站 2022-06-02 13:39:13
...

—–序列 sequence

序列和表一样是一种数据库对象,用来自动生成一组唯一的序号.
序列是一种共享式的对象,多个用户可以共同使用序列中的序号.
一般将序列应用于表的主键列,这样,当向表中插入数据时,主键列就使用了序列的序号,从而保证主键不会重复.
用序列来产生主键,可以获得可靠的主键值.

– 一句话: 序列就是序号生成器!

创建语法:
create sequence 序列名
[increment by n –-步长
start with n –- 从几开始
maxvalue n | nomaxvalue –-最大值
minvalue n | nominvalue --最小值
cycle | nocycle --是否循环
cache n | nocache ] --是否预先缓冲n个号在内存里

序列有2个伪列: nextval , currval ,代表下一个值和当前的值.
select seq1.nextval from dual;
select seq1.currval from dual;

-例子:1,3,…15并循环的序列

create sequence seq3 increment by 2
start with 5
maxvalue 15
minvalue 1
cycle
cache 3

-删除序列 sequence
Drop sequence 序列名

-修改序列
alter sequence 序列名
选项 新值

例子:
alter sqquence 序列名
maxvalue 5
-注意:
1> 不能修改开始值.
2> 修改只影响新产生的值,不影响已产生的值.

-使用序列
insert into 表名(col1,col2) values (seq1.nextval,xxx);

—–同义词 synonym

同义词就是别名,外号.
可以为数据库对象创建同义词,简化查询。

比如 xxxxtable->xt同义词.

创建语法:
Create [public] synonym 同义词 for 用户名.对象名
-public 表示所有用户可用的同义词,一般由DBA创建,普通用户不行
-对象名 可以是表名 列名 数据库名 视图名, 因为他们在oracle中都被理解为对象. (为何列也是对象?)

例子:
Create synonym g for scott.goods
-注:scott用户默认没有创建synonym的权限
需要授权:
conn sys/密码 as sysdba
grant create synonym to scott

??疑问:为啥在创建序列是create后面不能有; 创建同义词或者其他可以??
??ansi兼容等价语句 是啥??

-删除同义词
drop synonym 同义词

上一篇: 把数组排成最小的数

下一篇: merge