网站大量收购闲置独家精品文档,联系QQ:2885784924

第8 索引和视图.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8 索引和视图

创建简单视图 简单视图的子查询只从一个基表中导出数据,并且不包含连接、组函数等。 例如,创建一个包含员工号、员工名、工资和部门号的员工基本信息视图. CREATE OR REPLACE VIEW emp_base_info_view AS SELECT empno,ename,sal,deptno FROM emp; 创建复杂视图 复杂视图的子查询从一个或多个表中导出数据,也可以是经过运算得到的数据。 创建一个包含各个部门的部门号、部门平均工资和部门人数的视图. CREATE VIEW emp_info_view(deptno,avgsal,empcount) AS SELECT deptno,avg(sal),count(*) FROM emp GROUP BY deptno; 创建一个包含工资大于2000的员工信息的视图 。 CREATE VIEW emp_sal_view AS SELECT empno,ename,sal*12 salary FROM emp WHERE sal2000 WITH CHECK OPTION; 创建一个视图,包含各个员工的员工号、员工名及其部门名称。 CREATE VIEW emp_dept_view AS SELECT empno,ename,dname FROM emp,dept WHERE emp.deptno=dept.deptno; 内嵌视图 在FROM子句中使用的子查询,习惯上又称为内嵌视图。内嵌视图可以将复杂的连接查询简单化,可以将多个查询压缩成一个简单查询,因此通常用于简化复杂的查询。 查询各个部门的部门名、部门的最高工资和最低工资。 SELECT dname,maxsal,minsal FROM dept, (SELECT deptno,max(sal) maxsal,min(sal) minsal FROM emp GROUP BY deptno) deptsal WHERE dept.deptno=deptsal.deptno; 内嵌视图有一种特殊的应用,称为Top-N-Analysis查询,通过使用伪列ROWNUM,为查询结果集排序,并返回符合条件的记录。 查询工资排序前四名的员工号及其工资。 SELECT ROWNUM ,empno,sal FROM (SELECT * FROM emp ORDER BY sal DESC) WHERE ROWNUM = 4; (3)视图操作 视图创建后,就可以对视图进行操作,包括数据查询、DML操作(数据的插入、删除、修改)等。因为视图是“虚表”,因此对视图的操作最终转换为对基本表的操作。 对视图的查询象对标准表查询一样,但是对视图执行DML操作时需要注意,如果视图定义包括下列任何一项,则不可直接对视图进行插入、删除和修改等操作,需要通过触发器来实现。 集合操作符(UNION,UNION ALL,MINUS,INTERSECT) 聚集函数(SUM,AVG等); GROUP BY,CONNECT BY或START WITH子句; DISTINCT操作符; 由表达式定义的列; 伪列ROWNUM; (部分)连接操作。 (4)修改视图 可以采用CREATE OR REPLACE VIEW 语句修改视图,实质是删除原视图并重建该视图,但是会保留该视图上授予的各种权限。 修改视图CREATE VIEW emp_dept_view,添加员工工资信息 CREATE OR REPLACE VIEW emp_dept_view AS SELECT empno,ename,sal,dname FROM emp,dept WHERE emp.deptno=dept.deptno; (5)删除视图 可以使用DROP VIEW语句删除视图。删除视图后,该视图的定义从数据字典中删除,同时该视图上的权限被回收,但是对数据库表没有任何影响。 删除视图emp_dept_view DROP VIEW emp_dept_view; 8.3 序列 序列的概念 创建序列 使用序列 修改序列 删除序列 (1)序列的概念 序列用于产生惟一序号的数据库对象,用于为多个数据库用户依次生成不重复的连续整数。 通常使用序列自动生成表中的主键值。 序列产生的数字最大长度可达到38位十进制数。 序列不占用实际的存储空间,在数据字典中只存储序列的定义描述。 (2)创建序列 语法 CREATE SEQUENCE sequence [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NO

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档