oracle初识007 序列+同义词
—–序列 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 同义词
推荐阅读
-
oracle学习笔记(十四) 数据库对象 索引 视图 序列 同义词
-
Oracle实践--PL/SQL基础之同义词和序列
-
Oracle之DDL (Data Definition Language ,数据定义语言)(约束、伪列、视图、序列、同义词) 精简版
-
Oracle数据库基本操作(二) —— 视图、序列、索引、同义词
-
oracle 序列 视图 索引 同义词
-
Oracle序列、索引、同义词操作讲解
-
Oracle中的概念:同义词、序列与视图
-
Oracle入门基础(十)一一数据库其他对象-视图/序列/索引/同义词
-
oracle教程14 Oracle的其他数据库对象(序列 、索引 、同义词)
-
oracle初识007 序列+同义词