您的位置:首页 > 数据库

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

2014-07-08 21:34 253 查看
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐