=======================================================================================================
视图:
1:为什么要使用视图
  (1)简化复杂查询
  (2)限制某些数据的访问。安全
2:视图是一张虚拟的表,对应了一个查询语句。操作视图里的数据,相当于
  操作基表中的数据。
3:视图可以进行DML
  (1)对视图进行insert,基表中一定会增加数据,视图中不一定显示。
  (2)复杂视图不能进行DML
  (3)对视图进行insert时,需要考虑基表中其他字段的非空约束。
  (4)delete,update只能操作视图中可见的数据。

=======================================================================================================

一、视图
1.概念
    视图其实是一张虚表,对应一个select语句,视图其实是一张表中的部分数据映射(投影)视图关键字view,对应的select语句中的表叫基表
2.作用
    (1)可以保护表中的其他数据
    (2)当频繁的操作一个查询语句时,将这个查询语句创建成视图。
3.视图的分类
    (1)简单视图
         对应的select语句是一个普通的查询语句,没有聚合函数,其他函数,以及子查询
    (2)复杂视图
         select语句中含有函数,排序,子查询等
    (3)连接视图
         select语句中设计到多张表
4.视图的创建

--格式:视图的创建create [or replace] view viewName as subQuery
--格式:视图的删除drop view viewName
--有些用户没有视图创建的权限必须授权,使用DBA进行授权:grant create view to scott
--练习:创建视图,要求包含10号部门的员工的所有信息        create or replace view v_emp_10 as select * from emp where deptno=10;
--查看视图结构:desc view_namedesc v_emp_10;
--练习:将每个部门的平均工资最高工资还有工资之和以及部门号,创建成一个视图create or replace view v_emp_d as select deptno,avg(sal),max(sal),sum(sal) from emp group by deptno;

5:视图也能进行增删改DML操作,对视图的DML操作,其实就是对视图的DML操作
        原则1:视图中没有的字段,基表中的字段有非空约束,此时不能进行insert
        原则2:一个复杂视图,不能进行DML操作
        原则3:连接视图不能进行DML操作

--练习:向视图v_emp_10添加一条数据,9100,'zhangsan','clerk','11-11-16',7369,3000,100,10/20insert into v_emp_10 values(9100,'zhangsan','clerk',7369,'11-11月-16',3000,100,10);insert into v_emp_10 values(9101,'lisi','clerk',7369,'11-11月-16',3000,100,20);
--通过上述案列,视图中可能查询不到视图中添加的数据update v_emp_10 set sal=4000 where ename='zhangsan';update v_emp_10 set sal=4000 where ename='lisi';
--第二条数据执行不成功,因为视图中没有--练习:通过视图删除李四的信息delete from v_emp_10 where ename='lisi';--总结:可以DML视图中的任何数据,但是视图中没有的数据,可能insert,不能delete,update.

               
6.视图与with check option
      当视图对应的select语句中使用了with check option时,此时就对视图做了限制,只能DML视图中的所限制条件中的数据

--练习:创建视图 v_emp_20,对应的是20号部门的员工编号,姓名,职位,月薪,部门号create or replace view v_emp_20 as select empno,ename,job,sal,deptno from emp  where deptno=20 with check option;
--练习:向视图中插入数据9102,'wangwu','superman',2000,20;   --成功9103,'laoliu','superhaha',2000,30;  --失败,报ORA-01402: 视图 WITH CHECK OPTION where 子句违规

7.视图与with read only;

--练习:创建v_emp_30视图,为30部门的所有员工信息,设置为只读create view v_emp_30 as select * from emp where deptno=30 with read only;

二、表复制

 create table emp_100 as select * from emp;

十七、Oracle学习笔记:视图操作和表复制相关推荐

  1. (五)Oracle学习笔记—— 视图

    1. 视图简介 视图是虚表,没有具体物理数据,是通过实体表的一种计算映射逻辑.主要就是为了方便和数据安全. 2. 视图作用 简化数据操作:视图可以简化用户处理数据的方式. 着重于特定数据:不必要的数据 ...

  2. MySQL学习笔记05【多表操作、三大范式、数据库的备份和还原】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  3. MySQL学习笔记03【数据库表的CRUD操作、数据库表中记录的基本操作、客户端图形化界面工具SQLyog】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  4. oracle 权限问题9017,[数据库]oracle学习笔记(一)用户管理_星空网

    oracle学习笔记(一)用户管理 2014-04-13 0 1 --oracle学习第一天 2 --连接 @后面连接数据库实例,具体连接到那个数据库 3 conn scott/tiger@MYORA ...

  5. Oracle学习笔记 字符集概述

    Oracle 学习笔记 字符集概述 这节课开始讲oracle里面的字符集 偏重于原理和简单的一些判断以及实现 字符集它涉及到很多的东西 比如建库和操作系统环境 这节课把字符集的原理性的东西以及常见的操 ...

  6. oracle update单引号,Oracle学习笔记:update的字段中包括单引号

    平时update的时候直接更改字段内的值,例如: update table_temp set name = 'Hider' where id = 100; 但更新后的值中包括单引号,则不能按以上方式进 ...

  7. oracle学习笔记 参数文件及数据库的启动和关闭

    oracle学习笔记 参数文件及数据库的启动和关闭 我们这节课把oracle的参数文件以及oracle的启动关闭讲一下 一)参数文件作用 先看oracle的参数文件 它由来已久了 我们知道oracle ...

  8. oracle:oracle学习笔记(四)循环、光标、异常、瀑布模型

    oracle学习笔记:循环.光标.异常 文章目录 打印Hello World 定义基本变量 引用型变量(单行)` my_name emp.ename%type ` 记录型变量(多行) `emp_rec ...

  9. Oracle学习笔记---(一)

    Oracle学习笔记---(一) 一 1.Oracle简介     Oracle是以高级结构化查询语言(SQL)为基础的大型关系数据库:是一个对象关系数据库管理系统(ORDBMS).它提供了关系数据库 ...

  10. 在大量数据迁移期间oracle学习笔记

    在数据迁移期间oracle学习笔记 0主键(自增) 1用户代码 2区域代码 3承保公司代码 4理赔编码 5投保确认码 6案件状态 7案件进展 8重开案件进展 9转换后案件状态 需求分析: 1.根据上述 ...

最新文章

  1. 【F#2.0系列】介绍String类型
  2. merge合并2个json文件
  3. Mmseg中文分词算法解析
  4. 掌握这些 Redis 技巧,百亿数据量不在话下!
  5. iPhone Safari下iframe不显示滚动条无法滚动的解决方法
  6. 人体姿态估计算法之open pose
  7. linux iptables找不到,centos /etc/sysconfig/下找不到iptables文件解决方法
  8. python的基本功能_二.Python的基本数据类型及常用功能
  9. MYSQL相关学习-常用语句
  10. 读大道至简第五章有感
  11. 送给那些有代码基础但仍旧不会学自动化测试的朋友们
  12. 【入门篇】黑盒测试基础
  13. 产品列表页分类筛选、排序的算法实现(PHP)
  14. centos os u盘启动盘_怎么制作linux系统安装盘,U盘启动盘
  15. pchip-三阶Hermite插值
  16. Taro webview中的h5页面如何使用原生小程序API
  17. 从几个实例来记忆Activity的生命周期
  18. 云分众享,阿里云盘资源搜索工具
  19. 中国10大经典徒步线路(资深徒步专家@行摄匆匆推荐)
  20. java 向路由器发送报文_9.IP选路 - loda0128的个人空间 - OSCHINA - 中文开源技术交流社区...

热门文章

  1. Oracle 联合主键
  2. dup和dup2(摘 )
  3. linux下python、django框架的配置
  4. IIS7的HTTP 500.19错误
  5. 拓端tecdat|用SAS进行泊松,零膨胀泊松和有限混合Poisson模型分析
  6. sama5做linux的sd卡启动u盘,windows中service.msc与regedit
  7. 【论文笔记】HyperFace: ADeep Multi-task Learning Framework for Face Detection
  8. caffe 实践程序3——caffe提取特征以及由模型test数据
  9. flask报错 ValueError: Circular reference detected 问题解决
  10. python迭代器学习与简单的实践