Oracle中的概念:同义词、序列与视图Oracle认证考试

文章作者 100test 发表时间 2009:07:07 22:02:17
来源 100Test.Com百考试题网


  同义词 synonym
  CREATE [PUBLIC]SYNONYM synonym For schema.object
  隐藏对象的名称和所有者:
  0select count(*) from hr.employees.
  create synonym emp for hr.employees. --默认属于donny用户,是donny的私有对象private
  0select 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.
  0select 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表,查看效果。
  删除同义词:
  0drop synonym donny.emp.
  0drop 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.除非删除重建
  删除序列:
  0drop 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 0select on company_phone_book to public.
  Desc company_phone_book 对比列的长度
  Select * from company_phone_book.
  name隐藏数据的复杂性
  数据字典:
  dba_views
  text字段,long
  0select text from dba_views where view_name=upper(’company_phone_book’)
  改变视图定义:
  新需求:想要在现有视图上增加员工的ID号(employee_id)
  Create view company_phone_book as
  Select employee_id emp_id,
  first_name||’,’||last_name name, email, phone_number
  From employees.
  报错.
  如果删掉重建,会有什么缺点?会把关联的授权全部删掉。Create or replace view保留原有授权。
  Create or replace view company_phone_book as
  Select employee_id emp_id,
  first_name||’,’||last_name name, email, phone_number
  From employees.
  Desc company_phone_book
  Drop view company_phone_book

相关文章


ORCLE的备份与恢复Oracle认证考试
Oracle数据库索引创建要做到三个适当Oracle认证考试
Oracle概念:过程、函数、程序包Oracle认证考试
Oracle概念:异常和游标Oracle认证考试
Oracle中的概念:同义词、序列与视图Oracle认证考试
不让链化现象影响数据库性能Oracle认证考试
提高Oracle的Insert、Update等操作速度Oracle认证考试
Oracle数据库用户管理和数据导入导出Oracle认证考试
Oracle并发处理机制的简单看法Oracle认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛