尚硅谷_宋红康_10_视图_第1页
尚硅谷_宋红康_10_视图_第2页
尚硅谷_宋红康_10_视图_第3页
尚硅谷_宋红康_10_视图_第4页
尚硅谷_宋红康_10_视图_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第10节视图讲师:宋红康新浪微博:尚硅谷-宋红康目标通过本章学习,您将可以:描述视图创建和修改视图的定义,删除视图从视图中查询数据通过视图插入, 修改和删除数据使用“Top-N”分析常见的数据库对象对象描述表基本的数据存储集合,由行和列组成。视图从表中抽出的逻辑上相关的数据集合。序列提供有规律的数值。索引提高查询的效率同义词给对象起别名视图表EMPLOYEES :视图视图是一种虚表。视图建立在已有表的基础上, 视图赖以建立的这些表称为基表。向视图提供数据内容的语句为SELECT 语句,可以将视图理解为存储起来的SELECT 语句.视图向用户提供基表数据的另一种表现形式为什么使用视图控制数据访问

2、简化查询避免重复访问相同的数据简单视图和复杂视图特性简单视图复杂视图表的数量一个一个或多个函数没有有分组没有有DML 操作可以有时可以创建视图在 CREATEVIEW语句中嵌入子查询CREATE OR REPLACE FORCE|NOFORCE VIEW view(alias, alias.)AS subqueryWITH CHECK OPTION CONSTRAINT constraint WITH READ ONLY CONSTRAINT constraint;子查询可以是复杂的SELECT 语句create or replace view empview asselect employe

3、e_id emp_id,last_name name,department_name from employees e,departments dWhere e.department_id = d.department_id创建视图创建视图举例CREATE VIEWAS SELECTFROM WHEREempvu80employee_id, last_name, employees department_id = 80;salaryView created.描述视图结构DESCRIBE empvu80创建视图创建视图时在子查询中给列定义别名CREATE VIEW AS SELECTsalvu5

4、0employee_id ID_NUMBER, last_name salary*12 ANN_SALARYemployees department_id = 50;NAME,FROM WHEREView created.在选择视图中的列时应使用别名查询视图SELECT *FROMsalvu50;查询视图Oracle ServerSQL*PlusSELECT FROM*empvu80; EMPLOYEESUSER_VIEWSEMPVU80SELECT employee_id,last_name, salary FROMemployeesWHEREdepartment_id=80;修改视图使用C

5、REATEORREPLACEVIEW子句修改视图CREATE OR REPLACE VIEW empvu80(id_number, name, sal, department_id)AS SELECTemployee_id, first_name | salary, department_id employeesdepartment_id = 80; | last_name,FROM WHEREView created.CREATE相对应VIEW子句中各列的别名应和子查询中各列创建复杂视图复杂视图举例CREATE VIEW dept_sum_vu(name, minsal, maxsal, a

6、vgsal)AS SELECTd.department_name, MIN(e.salary), MAX(e.salary),AVG(e.salary) employees e, departments d e.department_id = d.department_id d.department_name;FROM WHERE GROUPBYView created.视图中使用DML的规定可以在简单视图中执行DML操作当视图定义中包含以下元素之一时不能使用delete:组函数GROUP子句关键字BYDISTINCTROWNUM伪列create or replace view sal_vie

7、w as selectavg(salary) avg_sal from employees group by department_id视图中使用DML的规定当视图定义中包含以下元素之一时不能使用update:组函数GROUPBY子句DISTINCT 关键字ROWNUM 伪列列的定义为表达式视图中使用DML的规定当视图定义中包含以下元素之一时不能使insert:组函数GROUP子句关键字BYDISTINCTROWNUM 伪列列的定义为表达式表中非空的列在视图定义中未包括屏蔽DML 操作可以使用WITHREADONLY选项屏蔽对视图的DML操作任何错误DML 操作都会返回一个Oracleserv

8、er屏蔽DML 操作CREATE OR REPLACE VIEWempvu10(employee_number, employee_name, job_title)AS SELECTFROM WHEREemployee_id, last_name, job_id employeesdepartment_id = 10WITH READ ONLY;View created.删除视图删除视图只是删除视图的定义,并不会删除基表的数据DROPVIEW view;DROPViewVIEW empvu80; dropped.Top-N 分析Top-N 分析查询一个列中最大或最小的 销售量最高的十种产品是什

9、么? 销售量最差的十种产品是什么?n 个值:最大和最小的值的集合是分析所关心的Top-N分析Top-N查询最大的几个值的分析: Top-NSELECT FROMcolumn_list, ROWNUM (SELECT column_listFROM tableORDERBY ROWNUM =Top-N_column) N;WHERE注意:对只能使用 或, =任何数据。练习1:查询员工表中,工资前10名的员工信息。练习2:查询员工表中,工资排名在10-20之间的员工信息。Top-N 分析查询工资最高的三名员工:123SELECT,FROM(SELECT last_name,salaryFROMemployeesORDER ROWNUMBY=salary 3;DESC)WHERE123salarylast_name,ROWNUM as RANKselect from( select from(select*rownum

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论