先讲下视图的概述吧
视图是一种 虚拟表 ,本身是 不具有数据 的,占用很少的内存空间,它是 SQL 中的一个重要概念。
视图建立在已有表的基础上, 视图赖以建立的这些表称为基表。视图他自己可以被称为从表。
虚拟表《VIEW》可以整合一张或多张表数据。优点……
比如,针对一个公司的销售人员,我们只想给他看部分数据,而某些特殊的数据,比如采购的
价格,则不会提供给他。再比如,人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他
人的查询视图中则不提供这个字段。
创建视图精简版
在 CREATE VIEW 语句中嵌入子查询
查询视图就直接
SELECT * from 视图名称
注意!
要是在创建视图时,没有在视图名后面指定字段列表视图中字段列表默认和SELECT语句中的字
段列表一致。如果SELECT语句中给字段取了别名,那么视图中的字段名和别名相同。
视图也可以创建多表联合视图
第一个图where避免笛卡尔积将多表联合,第二左外面也是多表联合,第三图聚合函数和GROUP BY。
也可以在后面加个别名视图进行格式化。
更新视图的数据
一般情况下不建议在视图是做修改删除 ,mysql支持使用INSERT、UPDATE和DELETE语句对视图中的数据进行插入、更新和删除操作。当视图中的数据发生变化时,数据表中的数据也会发生变化,反之亦然。直接在基表做修改就好了视图更新有些是不可更新的。
视图不支持更新操作:
上面第2图我们使用join联合查询 ,视图将不支持更新操作。
虽然可以更新视图数据,但总的来说,视图作为 虚拟表 ,主要用于 方便查询 ,不建议更新视图的
数据。对视图数据的更改,都是通过对实际数据表里数据的操作来完成的。
当然了哈不建议归不建议还是要说下怎么修改,删除视图
使用CREATE OR REPLACE VIEW 子句修改视图
方式2
删除视图
删除视图只是删除视图的定义,并不会删除基表的数据。
删除视图的语法是:
DROP VIEW IF EXISTS 视图名称;
IF EXISTS 就是防止报错
视图优点和缺点
如果我们在实际数据表的基础上创建了视图,那么,如果实际数据表的结构变更了,我们就需要及时对
相关的视图进行相应的维护。特别是嵌套的视图(就是在视图的基础上创建视图),维护会变得比较复
杂, 可读性不好 ,容易变成系统的潜在隐患。因为创建视图的 SQL 查询可能会对字段重命名,也可能包
含复杂的逻辑,这些都会增加维护的成本。
实际项目中,如果视图过多,会导致数据库维护成本的问题。
所以,在创建视图的时候,你要结合实际项目需求,综合考虑视图的优点和不足,这样才能正确使用视
图,使系统整体达到最优。
就这些了,想要知道更多关于视图深层知识的话就点赞关注不迷路。!😍
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)