第10章 序列和同义词的创建
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
同义词是表、索引、视图等方案对象的一 个别名,不占据任何实际的存储空间,只 在数据字典中保存其定义。 ORACLE中同义词分为两种类型:
公有同义词:被数据库中所有的用户使用
• 需要CREATE PUBLIC SYNONYM系统权限
私有同义词:仅被它的创建者使用
• 需要CREATE SYNONYM系统权限
Oracle 数据库管理与应用
第10章 序列和同义词的创建
本章要点
1 2 3
序列和同义词的概念及作用 序列的创建、应用及管理 同义词的创建、应用及管理
10.1 序列的创建、应用及管理
序列可在当前方案下产生一系列唯一数字, Байду номын сангаас以用这些数字产生表的主键值,也可以参 与其他运算。 序列也可以在多用户并发环境中使用,为 所有用户生成不重复的顺序数字,而且不需 要任何额外的I/O开销。
10.1.1 创建序列
需要具有CREATE SEQUENCE或CREATE ANY SEQUENCE系统权限。 创建序列的语法如下: CREATE SEQUENCE [schema.]<sequence_name> [START WITH start] [INCREMENT BY increment] [MINVALUE min|NOMINVALUE] [MAXVALUE max|NOMAXVALUE] [CACHE cache|NOCACHE] [CYCLE|NOCYCLE] [ORDER|NOORDER]
10.1.2 应用序列
可以使用以下命令访问序列的值:
NEXTVAL:序列生成的下一个值 CURRVAL:序列的当前值
注意:第一次应用序列时,需要使用NEXTVAL, 返回的是初始值。而以后再使用NEXTVAL运算符 时,会使序列自动增加INCREMENT BY后面定义 的值。
语法格式为:
--使用同义词hr_emp查询原表hr.employees中的数据
SELECT * FROM hr_emp;
10.2.2 管理同义词
查询同义词
SELECT * FROM DBA_SYNONYMS;
删除同义词
DROP [PUBLIC] SYNONYM sysnonym_name
10.2.1 创建、应用同义词
创建同义词的语法如下:
CREATE [OR REPLACE] [PUBLIC] SYNONYM [schema .]synonym_name FOR [schema .] object_name
例10.7 为hr.employees表创建一个公有同 义词,并利用同义词访问原表中的数据。 CREATE OR REPLACE PUBLIC SYNONYM hr_emp FOR hr.employees
例10.1 创建一个名为emp_no的序列,从 1001开始,一次递增1,没有最大值,并且使 用CACHE子句为序列在缓存中预先分配10个 序列值,以提高获取序列值的速度。 CREATE SEQUENCE emp_no START WITH 1001 INCREMENT BY 1 NOMAXVALUE CACHE 10 NOCYCLE;
例10.3 查询序列emp_no的当前值。 SELECT emp_no. CURRVAL FROM dual;
10.1.3 管理序列
修改序列 :
ALTER SEQUENCE 命令
查询序列 :
从数据字典USER_SEQUENCES查询
删除序列 :
DROP SEQUENCE命令
10.2 同义词的创建、应用及管理
[schema.] sequence_name. NEXTVAL|CURRVAL
例10.2 创建一个新表emp,并且使用上例产生的 序列emp_no,给emp表中empno列产生编号。 --创建新表emp CREATE TABLE emp (empno NUMBER(5) PRIMARY KEY, --将序列emp_no的新值添加到表中 name VARCHAR2(8), INSERT INTO emp VALUES (emp_no. NEXTVAL,'刘丽',25,'河北保定',150); age NUMBER(3), --查询表中的数据 addr VARCHAR2(40), COLUMN addr FORMAT a10 dep_id NUMBER(5)); SELECT * FROM emp;