数据库学习9-同义词,视图,索引

1.同义词;
  1.1 同义词是什么?
      同义词就是对象的别名;
  1.2 有啥用
      a.同义词就是为方便跨数据库访问或跨用户访问对象;
      b.隐藏对象所属的用户;
2.视图(重点);
  2.1 是什么?
     查看数据结果集的窗口;
  2.2 什么作用
     a.隐藏数据的结构


:一般,键保留表
user_indexes
3.索引(重点):
  在表中建立一个目录;
(重点) 主键,唯一,组合,位图,反向键,基于函数的

索引组织表(毛病)


/*
  导出 export(exp)
*/
--导出该用户的对象 
exp scott/tiger@orcl file=back owner=scott

--导出该用户的表
exp scott/tiger@orcl tables=(emp, dept) file=back_tab

--导出该用户的表空间
exp scott/tiger@orcl tablespaces=(users) file=users_tab


/*
  导入 import(imp)
*/
--整个文件导入
imp scott/tiger@orcl file=back.dmp ignore=y full=y;

--用户scott中的表导给system用户
imp scott/tiger@orcl file=back fromuser=scott touser=system tables=(emp,dept);

/*
  同义词  对象 关键字synonym
   隐藏用户信息
*/
SELECT * FROM user_tables;

--select * from 模式.对象名
SELECT * FROM scott.test1 ;

--私有的同义词
CREATE SYNONYM s_test1 FOR scott.test1;

--公有的同义词
CREATE PUBLIC SYNONYM s_pb_test1 FOR scott.test1;

SELECT * FROM s_test1;

/*
  视图 对象 关键字  view 
   隐藏原始数据(基表)的细节,提供更贴近用户需求的数据
*/
--可以这样做的  CREATE VIEW 
GRANT CREATE VIEW TO scott;

CREATE OR REPLACE VIEW v_a 
    AS
   SELECT empno emp_id,ename emp_name
     ,sal salary ,hiredate emp_hire_date FROM emp
  WITH READ ONLY; --只读选项

SELECT * FROM v_a;

UPDATE v_a SET emp_name = 'SMIth' 
  WHERE emp_id = 7369;
  
CREATE OR REPLACE VIEW v_b 
    AS
   SELECT empno emp_id,ename emp_name
     ,sal salary ,hiredate emp_hire_date,
     job emp_job
      FROM emp WHERE job = 'MANAGER'
   WITH CHECK OPTION; 
      
SELECT * FROM v_b;  
UPDATE v_b SET emp_job = 'CLEAR'
  WHERE emp_id = 7566;  
UPDATE v_b SET salary = 100 
    WHERE emp_id = 7566;   

CREATE OR REPLACE VIEW v_c
   AS
   SELECT empno emp_id,ename emp_name,
     sal salary ,hiredate emp_hire_date,
     job emp_job, dname dept_name,loc dept_loc
    FROM emp e,dept t 
     WHERE e.deptno = t.deptno;
     
--联表视图中,唯一标识所在表叫键保留表,
---否则就是非键保留表     
UPDATE v_c SET dept_name = 'kkkk' 
  WHERE emp_id = 7782;
 SELECT * FROM v_c;   
  
/**
  索引 对象 关键字 index
   目录 提高检索数据的效率
*/ 
SELECT * FROM emp WHERE sal > 1500; 

CREATE INDEX index_sal ON emp(sal);
CREATE INDEX index_name ON emp(ename,job);
DROP INDEX index_sal;

--主键索引,唯一索引,
--位图索引,反向键索引
--唯一索引
CREATE UNIQUE INDEX uniq_index_ename
   ON emp(ename);
   
--位图索引 列重复的数据(重复超过100次)比较多选择
CREATE BITMAP INDEX index_dept 
   ON emp(deptno);
   
--反向键索引 (有规律的顺序)
CREATE INDEX index_empid 
   ON emp(empno) REVERSE;   
   
--索引组织表 某个表数据变动极少(大部分时候是检索的情况)时可以选择        
CREATE TABLE tab_name 
(
  column1 NUMBER,
  column2 VARCHAR2(10)
)
ORGANIZATION INDEX;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值