什么叫序列:
1:定义:
仅向前的数字变量(和SQL中的自动编号有点像 identity(1,2) )
2:如何定义一个序列
格式:
create sequence <序列名称>
start with <起始数>
increment by <增长量>
[maxvalue 值]
[minvalue 值]
[cycle 当到达最大值的时候,将继续从头开始]
example:
create sequence mySeq
start with 1
increment by 2
maxvalue 40
minvalue 1
cycle
3:怎么去取序列数据:
currval--->curenValue
nextVal-->NextVlaue
example:
select mySeq.nextVal from dual
注意一点:currval只有当nextVal执行一次以后才可以用.
在创建表的时候,可以使用序列.
具体例子:
create table 学生基本信息表
(
StuID int,
StuName varchar2(20)
)
insert into 学生基本信息表 values(mySeq.nextVal,'AA')
4:如何修改序列:
alter sequence mySeq maxValue 500
注意:不能改start with,其他随便改(设置minValue值的时候不能大于当前值)
5:如何查看某个表空间所有序列:
select * from user_sequences
6:如何删除:
drop sequence 序列名称
同义词:
就是给Oracle对象取一个别名,并做为数据库对象永久保存在Oracle数据库.
特别注意一点:同义词一但创建,就不能修改 只能删除
1:分类:
私有同义词:普通用户(scott)创建,并且只有该用户可以用.
公有同义词:由DBA。SYSTEM。SYS创建.任何用户都可以访问同义词
2:特点:
代表Oracle对象的全部.不能代表一个对象的某一部分.但是视图却可以代表对象的一部分.
对同义词进行数据操作,将影响到某一个跟同义词关联的对象
对某一个具体的Oracle对象进行数据操作的时候,将影响到与他关联的同义词。
表一但重命名 同义词不会改变 还是在数据库存在的.
表一但删除 同义词也还在 但同义词数据却不在
3:创建同义词的格式:
create [public] synonym 同义词名称 for Oracle某一个具体对象
4:查看所有的同义词:
select * from user_synonyms
5:如何删除同义词:
drop synonym 同义词名称
自己写的一个例子
我在用户AA中建一个同义词:
CREATE SYNONYM "AA"."MYTONGYI"
FOR "AA"."AATEST_1"
其中 AATEST_1 是一个数据库表。
然后有用户BB :
执行下列语句:
grant select on MYTONGYI to BB;
commit;
那么用BB登录执行下列语句:
select * from AA.MYTONGYI
视图与同义词的区别:
A:同义词是实实在在的 而视图是虚的
B:同义词是代表对象的全部 不能代表一部分 而视图既可以是全部 也可以是一部分
C:同义词一但创建不能修改 视图却可以修改
D:同义词只能代表一个对象 ,而视图可以关联多个
A synonym is an alias for a schema object. Synonyms can provide a level of ecurity
by masking the name and owner of an object and by providing location transparency for remote objects of a distributed database. Also, they are convenient to use and reduce the complexity of SQL statements for database users.
Synonyms allow underlying objects to be renamed or moved, where only the synonym needs to be redefined and applications based on the synonym continue to function without modification.
You can create both public and private synonyms. A public synonym is owned by
the special user group named PUBLIC and is accessible to every user in a database.
A private synonym is contained in the schema of a specific user and available only
to the user and the user’s grantees.
转载:http://hi.baidu.com/rover828/blog/item/b8d3a9c3e3e11e55b219a8d2.html