Oracle中的概念:同义词、序列与视图
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle中的概念:同义词、序列与视图,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2843字,纯文字阅读大概需要5分钟。
内容图文
![Oracle中的概念:同义词、序列与视图](/upload/InfoBanner/zyjiaocheng/553/fe2edc1aa3474ea8adeeee61989591b9.jpg)
From employees; 报错; 如果删掉重建,会有什么缺点?会把关联的授权全部删掉。Create or replace view保留原有授权。
同义词 synonym
CREATE [PUBLIC]SYNONYM synonym For schema.object
隐藏对象的名称和所有者:
select count(*) from hr.employees;
create synonym emp for hr.employees; --默认属于donny用户,是donny的私有对象private
select count(*) from emp;
为分布式数据库的远程对象提供了位置透明性:
访问其他数据库时,要首先建立数据库连结:
CREATE DATABASE LINK test_link CONNECT TO username IDENTIFIED BY pass USING 'orabase';
Select count(*) from hr.employees@test_link;
create synonym link_emp for hr.employees@test_link;
select count(*) from link_emp;
提供对象的公共访问:
create public synonym pub_emp for hr.employees;
pub_emp属于public用户,数据库所有用户都可以访问。
同义词类型
–私有 emp 实际上donny.emp
–公用 pub_emp 所有用户都可以直接访问
当公有对象和私有对象同名时(因为数据不同的用户,所以可以),以私有对象优先。(类似于局部变量)
desc dba_synonyms/ user_synonyms/ all_synonyms 数据字典,复数
tab公有同义词
建立私有的tab表,查看效果。
删除同义词:
drop synonym donny.emp;
drop public synonym pub_emp;
序列sequence:
CREATE SEQUENCE donny.seq --也是属于某个用户的,,以下参数均可省略,使用默认值。
INCREMENT BY 1 --指定序列之间的间隔,正负整数;默认1,正为升序,负为降序。
START WITH 1 --第一个序列号,默认=MINVALUE
NOMAXVALUE --设置最大值,此处表示默认10的27次幂。MAXVALUE 10
NOMINVALUE --设置最小值,此处表示默认-10的26次幂。MINVALUE 1
NOCYCLE --或者CYCLE;表示序列达到最大或者最小(降序)后,要不要从头开始
CACHE 10; --默认CACHE 20, 事先分配多少序列号放在内存中,提高速度。
访问序列:
Oracle为序列提供了两个伪列,可以看作其属性。
Nextval: 根据increment by得到的一个新的序列值。每次执行都会得到一个新值。
Currval: current value, 当前值,已经被取得的值。
Select seq.nextval from dual;
Select seq.currval from dual;
使用序列:
insert into t values(seq.nextval);
修改序列:
alter sequence seq …..重新指定各个参数
不能修改start with;除非删除重建
删除序列:
drop sequence seq;
数据字典:
desc dba_sequences / user_…/ all….
视图view:
CREATE [OR REPLACE][FORCE/ NOFORCE] VIEW AS
Create view mytable
As
Select first_name||’,’||last_name
from hr.employees;
[试验]:如何使用视图作为安全 href="http://safe.it168.com/" target=_blank>安全机制
1. desc考察hr.employees,看作一个公司的员工信息数据库表,简单说明
2. 目标:实现每个员工都可以访问公司中所有雇员的name, email, phone_number,方便通讯
3. 方案:
a) 赋予所有员工访问hr.employees表的权限?salary
b) 建立一个只包含合适字段的视图,然后赋予所有员工访问这个视图的权限,而不是表的权限。
4. Alter user hr account unlock;
Conn hr/hr
Create view company_phone_book as
Select first_name||’, ’||last_name name, email, phone_number
From employees;
Grant select on company_phone_book to public;
Desc company_phone_book 对比列的长度
Select * from company_phone_book;
name隐藏数据的复杂性
内容总结
以上是互联网集市为您收集整理的Oracle中的概念:同义词、序列与视图全部内容,希望文章能够帮你解决Oracle中的概念:同义词、序列与视图所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。