Oracle培训(三十)——Oracle 11g 第十一章知识点总结——视图
知识点预览
复习
视图
复习
--分页 每页显示5条
--第一页
select t.*
from (select rownum sn,ename,job,salfrom emp
where rownum <= 1*5) t
where t.sn>(1-1)*5;
视图
1.常见的数据库对象
2.为什么使用视图
a)控制数据访问
b)简化查询
c)数据独立性
d)避免重复访问相同的数据
3.简单视图和复杂视图
4.创建视图
a)在CREATE VIEW语句中嵌入子查询
CREATE [OR REPLACE] [FORCE|NOFORCE]VIEW
view
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY [CONSTRAINT constraint]];
b)子查询可以是复杂的 SELECT语句
c)创建视图举例
CREATE VIEW empvu80
AS SELECT employee_id, last_name, salary
FROM employees
WHERE department_id = 80;
Viewcreated.
d)描述视图结构
DESCRIBE empvu80
e)创建视图时在子查询中给列定义别名
CREATE VIEW salvu50
AS SELECT employee_id ID_NUMBER, last_name NAME,
salary*12ANN_SALARY
FROM employees
WHERE department_id = 50;
View created.
f)在选择视图中的列时应使用别名
5.查询视图
SELECT *
FROM salvu50;
6.修改视图
a)使用CREATE ORREPLACE VIEW 子句修改视图
CREATE OR REPLACE VIEW empvu80
(id_number, name,sal, department_id)
AS SELECT employee_id, first_name || ' ' || last_name,
salary,department_id
FROM employees
WHERE department_id = 80;
View created.
b)CREATE VIEW 子句中各列的别名应和子查询中各列相对应
7.创建复杂视图
创建复杂视图举例
CREATE VIEW dept_sum_vu
(name, minsal,maxsal, avgsal)
AS SELECT d.department_name, MIN(e.salary),
MAX(e.salary),AVG(e.salary)
FROM employees e, departments d
WHERE e.department_id = d.department_id
GROUP BY d.department_name;
View created.
8.视图中使用DML的规定
a)可以在简单视图中执行 DML操作
b)当视图定义中包含以下元素之一时不能使用delete:
i.组函数
ii.GROUP BY子句
iii.DISTINCT关键字
iv.ROWNUM 伪列 DUAL伪表
c)当视图定义中包含以下元素之一时不能使用update:
i.组函数
ii.GROUP BY子句
iii.DISTINCT关键字
iv.ROWNUM 伪列
v.列的定义为表达式
d)当视图定义中包含以下元素之一时不能使用insert:
i.组函数
ii.GROUP BY子句
iii.DISTINCT关键字
iv.ROWNUM 伪列
v.列的定义为表达式
vi.中非空的列在视图定义中未包括
9.WITH CHECK OPTION 子句
a)使用 WITH CHECKOPTION 子句确保DML只能在特定的范围内执行
CREATE OR REPLACE VIEW empvu20
AS SELECT *
FROM employees
WHERE department_id = 20
WITH CHECK OPTIONCONSTRAINT empvu20_ck ;
View created.
b)任何违反WITH CHECKOPTION 约束的请求都会失败
10.屏蔽 DML 操作
a)可以使用 WITH READONLY 选项屏蔽对视图的DML操作
b)任何 DML 操作都会返回一个Oracle server错误
CREATE OR REPLACE VIEW empvu10
(employee_number, employee_name, job_title)
AS SELECT employee_id, last_name, job_id
FROM employees
WHERE department_id = 10
WITH READ ONLY;
View created.
11.删除视图
删除视图只是删除视图的定义,并不会删除基表的数据
DROP VIEW view;
DROP VIEW empvu80;
View dropped.
12.临时视图
a)临时视图可以是嵌套在 SQL语句中的子查询
b)在FROM 子句中的的子查询是临时视图
c)临时视图不是数据库对象
13.Top-N 分析
a)Top-N 分析查询一个列中最大或最小的 n 个值:
i.销售量最高的十种产品是什么?
ii.销售量最差的十种产品是什么?
b)最大和最小的值的集合是Top-N 分析所关心的
c)查询最大的几个值的 Top-N 分析:
SELECT [column_list], ROWNUM
FROM (SELECT [column_list]
FROM table
ORDER BY Top-N_column)
WHERE ROWNUM <= N;
d)查询工资最高的三名员工
分享到:
相关推荐
Oracle10g 培训——基础知识,适合初学者了解,
oracle内部培训资料——游标 实例代码,使用注意事项等
oracle系统培训课件——资料包(7个ppt).rar
《Oracle11g从入门到精通》面向数据库管理人员和数据库开发人员,从实际角度出发,系统地...对于初学者,《Oracle11g从入门到精通》是一本很好的入门教程,对Oracle管理员和应用程序开发员,也有很好的学习和参考价值。
Oracle工作总结——日志文件切换频率的调整 Oracle工作总结——日志文件切换频率的调整
Oracle经典教程1——走进Oracle
第11章 转换函数与变换函数 第12章 分组函数 第13章 当一个查询依赖于另一个查询时 第14章 一些复杂的技术 第15章 更改数据:插入﹑更新﹑合并和删除 第16章 DECODE和CASE SQL中的if-then-else 第17章 创建和管理表...
Oracle数据库管理员培训教材——10g版本,学习初学oracle,oracle进阶等有很好的帮助,就是好!
很好的oracle 10培训资料——管理第二部分:管理实例
Oracle经典教程6——Oracle应用于.NET平台
Oracle11g教程_第6章_视图和索引操作 ppt
Oracle大学培训资料——Oracle9i 数据库管理基础 I(中文版)
第1章 oracle database 11g 体系结构 第2章 安装oracle database 11g 和创建数据库 第3章 升级到oracle database 11g 第4章 规划oracle 应用程序——方法、风险和标准 第ⅱ部分 sql 和sql*plus 第5章 sql...
oracle系统培训课件——资料包(7个ppt),共享不需要理由吧
教程名称:Oracle 11g最佳培训教程PPT(31部分)课程目录:【】第0部分本视频课程简介【】第10部分oracle11g的表分区【】第11部分同义词【】第12部分序列【】第13部分oracle11g的视图【】第14部分索引【】第15部分...
Oracle Database 11g r2性能调优官方中文版OCM培训教材。
ORACLE 报表分析 利剑——分析 函数
重要基础知识点总结,oracle11g数据库基础教程第2版重要知识点总结(电工社),自己总结的知识点,有问题请留言联系
Oracle性能诊断之——Latch free