视图
什么是视图:
用于保存查询结果的数据集(一张虚拟表),视图中并不保存数据,其数据均来源于真是表中,视图实质上用于封装查询语句的。
示例:
列表查询两个表中满足一些条件的部分数据,此时就会使用两表联查,将结果展示给用户。假设在其他位置也要显示刚才的查询结果,可以将之前的sql语句重写多次,但是这种做法不符合编程规范,此时就可以将以上的查询语句进行提取,提取之后哪里需要再次查询该结果,直接调用该sql语句即可。
此时使用视图来保存查询的结果集,其实质为使用视图来封装刚才的查询语句,后期其他地方若要再次查询该结果,直接调用视图即可,即可查询到相应的数据。
使用
视图的创建
//查询所有员工数据,部门名称,部门地址
SELECT d.*,l.name subjectName,l.loc
FROM teacher d
JOIN location l
ON d.subject_id=l.id
//创建视图
CREATE VIEW v_emp AS SELECT...
CREATE VIEW v_emp(col1,col2,...) AS SELECT...
视图的使用
//视图是虚拟表,所以视图的操作和表的操作一样
//查看视图是否存在:
SHOW TABLES
//查看视图中的数据:
SELECT * FROM v_emp
//删除视图:
DROP VIEW V_xx
注意点:
- 视图是虚拟表,并不保存数据,其数据均来源于真实表中。
- 真实表的数据发生改变,视图的结果也会发生改变。
- 视图是用于保存查询结果的,并不用于执行写操作,逻辑角度上,不要对视图进行增删改操作。
- 物理角度上,对视图执行写操作,一定程度上可以成功
- 对视图执行改操作,无论视图是来自单表还是多表,都成功
- 增删数据
- 增加数据
- 视图来源于单表-成功
- 视图来源于多表-失败
- 删除数据
- 视图来源于单表-成功
- 视图来源于多表-失败
- 增加数据
- 物理角度上,对视图执行写操作,一定程度上可以成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)