Oracle-DDL 2- 视图&索引
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle-DDL 2- 视图&索引,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2779字,纯文字阅读大概需要4分钟。
内容图文
![Oracle-DDL 2- 视图&索引](/upload/InfoBanner/zyjiaocheng/512/2707d342171546d29d934576ec63af08.jpg)
--对视图的操作等同于对查询语句中源数据的操作
--视图占用存储空间较小,可以快速的对特定数据进行访问和操作
--视图主要用于针对相同的数据,创建不同的视图来区分访问和操作的权限
--创建适当的视图可以简化查询语句
--创建视图需要相应的权限
/*
create 【or replace】 view 视图名称
【(列名1,列名2,……)】
as
select ……
【with read only】;
or replace 如果不写,创建的视图名称已经存在会报错
如果写上 or replace 则同名的视图会被替换
with read only 表示该视图只能查看,不能修改数据
*/
--使用管理员给scott用户赋予创建视图的权限
GRANT CREATE VIEW TO scott;
1.区分权限
--emp表针对不同的员工和职位,能够访问和操作的数据不一样
--boss和hr 可以查看和修改所有员工的信息,直接使用emp
--部门经理可以查看和修改本部门的员工信息
--普通员工只能查看自己的信息,不能修改
--针对部门经理和普通员工创建不同的视图进行区别
--部门经理的视图
CREATE VIEW v_dept20
AS
SELECT * FROM emp
WHERE deptno = 20;
--对视图的操作与对表的操作一致
SELECT * FROM v_dept20;
--对视图中数据的修改等同于对源表中数据的修改
UPDATE v_dept20
SET sal = 1500
WHERE ename = ‘SMITH‘;
SELECT * FROM emp;
--普通员工的视图
CREATE VIEW v_7369
AS
SELECT empno,ename,job,sal,deptno FROM emp
WHERE empno = 7369
WITH READ ONLY;
SELECT * FROM v_7369;
UPDATE v_7369
SET sal = 2000;
2.简化查询语句
--查询research部门的员工人数
1)子查询
SELECT COUNT(*) FROM emp
WHERE deptno =
(SELECT deptno FROM dept WHERE dname = ‘RESEARCH‘);
2)多表查询
SELECT COUNT(e.empno)
FROM emp e,dept d
WHERE e.deptno = d.deptno
AND d.dname = ‘RESEARCH‘;
3)视图
--如果有些表之间的数据关系很密切,经常互相作为条件进行查询
--可以提前准备好相应的视图,从视图中查询数据
CREATE VIEW emp_dept
AS
SELECT e.*,d.deptno dno,d.dname,d.loc
FROM emp e,dept d
WHERE e.deptno(+) = d.deptno;
SELECT * FROM emp_dept;
--查询research部门的员工人数
SELECT COUNT(*) FROM emp_dept
WHERE dname = ‘RESEARCH‘;
三、索引
--索引(index)给表中的某列数据创建索引,可以提高查询效率
--表中的每行数据所存储的位置都有一个rowid
SELECT ename,ROWID FROM emp;
--索引将数据和rowid的关系对应起来,直接通过rowid访问数据的存储位置
--经常作为查询条件的列创建索引提高查询效率
1.B树索引
--create index 索引名称 on 表名(列名);
CREATE INDEX index1 ON emp(ename);
--确认索引的创建
SELECT * FROM user_indexes;
--索引不需要使用,当查询语句中的条件用到相关的列时,索引会自动提高查询效率
--当表中数据发生变化时,索引也会自动更新,将相关数据关联起来
--b树索引适用于某列数据有大量的不相同的数据时
--当某一列有大量重复的数据时,不适合使用b树索引,应该使用位图索引
2.位图索引
--位图索引使用二进制数来存储具体某一行的键值
--create bitmap index 索引名称 on 表名(列名);
CREATE BITMAP INDEX index2 ON emp(deptno);
Oracle-DDL 2- 视图&索引
标签:直接 表示 简化 res 表名 职位 保存数据 表之间 dep
本文系统来源:https://www.cnblogs.com/JodieRao/p/11358213.html
内容总结
以上是互联网集市为您收集整理的Oracle-DDL 2- 视图&索引全部内容,希望文章能够帮你解决Oracle-DDL 2- 视图&索引所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。