当前位置: 首页 > news >正文

数据库中视图的知识点

       视图(子查询):是从一个或多个表导出的虚拟的表,其内容由查询定义。具有普通表的结构,但是不实现数据存储。对视图的修改:单表视图一般用于查询和修改,会改变基本表的数据,多表视图一般用于查询,不会改变基本表的数据。

1)   定义和概念

① 从一个或几个基本表中根据用户需要而做成一个虚表

② 视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据 

③ 视图只在刚刚打开的一瞬间,通过定义从基表中搜集数据,并展现给用户

2)   视图的优点

① 能分割数据,简化观点。可以通过select和where来定义视图,从而可以分割数据基表中某些对于用户不关心的数据,使用户把注意力集中到所关心的数据列.进一步简化浏览数据工作 

② 为数据提供一定的逻辑独立性。 如果为某一个基表定义一个视图,即使以后基本表的内容的发生改变了也不会影响“视图定义”所得到的数据 

③ 提供自动的安全保护功能。 视图能像基本表一样授予或撤消访问许可权,给用户是表的一部分访问权限而不是全部。

④ 视图可以间接对表进行更新,因此视图的更新就是表的更新 

3)   使用视图的一些限制和规则

① 视图必须唯一命名,不能和表或者其他视图重名

② 视图可以嵌套,可以从其他视图中构造视图

③ order by可以用在视图定义中,但是如果select语句从视图中检索数据时候,在视图中order by将被覆盖。

4)   视图和基本表的区别

a)   视图是已经编译好的sql语句。而表不是  

b)   视图没有实际的物理记录。而表有。

c)   表是内容,视图是窗口

d)   表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改

e)   表是内模式,视图是外模式

f)   视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。

g)   表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。 

h)   视图的建立和删除只影响视图本身,不影响对应的基本表。

5)   视图的创建、删除、使用、查看:

CREATE or replace view VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition

DROP VIEW view_name

select * from view当成表使用就好

由于视图相关与一张虚表,使用show tables查看当前数据中的视图:

6)   通过视图变更数据

INSERT INTO v_order(pid,pname,price) VALUES('p010','柴油','34');

跨表插入数据系统反馈报错,提示不能修改超过一个表的数据。因此,可以通过视图插入数据,但是只能基于一个基础表进行插入,不能跨表更新数据。

补充考点:创建视图的时候的 with check 语句

对视图进行update或者insert操作时,保证更新或者插入的行满足图中定义的谓词条件。例如:一张表里有个字段是专业的;你创建视图的时候 create view stu as select 学生 from table where 专业='计算机' with check option 这样where后面就实现了对专业的限定 以后你如果对视图添加记录的时候专业如果不是计算机的话不让添加进去的。

    Access的数据表视图中,可以修改字段名称、删除字段和删除记录,但是不能够修改字段类型。字段的类型需要在设计视图中修改。

http://www.lryc.cn/news/343870.html

相关文章:

  • aardio封装库) 微软开源的js引擎(ChakraCore)
  • LeetCode-hot100题解—Day6
  • 【Linux】gcc/g++的使用
  • 2024-5-3学习笔记 虚拟继承原理
  • C语言什么是“野指针”?
  • LeetCode--所有质数、质数对
  • JavaScript异步编程——05-回调函数
  • JAVA基础之jsp标准标签
  • VM16激活码以及连接centos7过慢的问题
  • MySQL 迁移到 Oracle 需要注意的问题
  • 【数字经济】上市公司供应链数字化数据(2000-2022)
  • 通过AOP实现项目中业务服务降级功能
  • LeetCode:盛最多水的容器
  • 阿里云 OSS桶对象存储攻防
  • 外网禅道配置
  • MM模块学习一(供应商创建,物料类型的定义及功能)
  • 玩comfyui踩过的坑之使用ComfyUI_Custom_NODES_ALEKPET翻译组件问题
  • (类)偏特化Partial Specialization
  • TypeScript 基础学习笔记:interface 与 type 的异同
  • 【管理咨询宝藏95】SRM采购平台建设内部培训方案
  • 第七届机电、机器人与自动化国际会议(ICMRA 2024)即将召开!
  • 【智能楼宇秘籍】一网关多协议无缝对接BACnet+OPC+MQTT
  • leetCode68. 文本左右对齐
  • 搜狗输入法 PC端 v14.4.0.9307 去广告绿化版.
  • 【汇总】虚拟机网络不通(Xshell无法连接虚拟机)排查方法
  • C++开发基础之函数参数传递的几种类型
  • 使用memcache 和 redis 、 实现session 会话复制和保持
  • Tomcat 优化
  • 如何将pdf文件换成3d模型?---模大狮模型网
  • Docker 中快速构建 Redis Cluster 集群