视图解释
因为数据库设计的时候,不会把所有信息都集中到一张表里。所以会设计很多张物理源表,不同表之间通过外键等关键信息进行关联。
而当我们需要查询数据的时候,通常都会跨表查询,就会用到多表关联查询。而这些查询代码通常会高频使用,并且每次都要多表查询比较麻烦,所以我们会把这些高频查询的多张表结合的结果表进行缓存,以备后期高频查询时使用。这个缓存表就是「视图」。
作用:
减少sql语句,方便查询。
减少sql语句也可以减少网络传输(在node中操作sql时,sql越少,传输的内容越少)
操作视图:DDL 数据对象定义语言
一个视图就是一个对象
新建视图:
新建的视图中,就写「高频使用的」查询语句
执行sql没问题后,可以预览SQL。可以看到创建视图的DDL语言如下:
CREATE VIEW 数据库名.视图名 AS 「要查询时执行的SQL语句」
保存并命名后,可以选中左侧的视图看效果。其实他就是上图中sql执行的一张结果表
使用视图
原来sql语句中写表名的地方,改成写视图名就行了
SELECT *
--- xxx其他语句
FROM 「视图名」
--- xxx其他语句
视图数据存储位置
视图表的数据不在硬盘上,在内存里,被缓存起来了。
视图的其他点
修改视图
向视图中增删内容
视图中,可以自定义增删数据,但是通常不要这么做。只把视图当做一个数据结果缓存表使用。别污染他的数据。
视图案例
select e.*,
d.name as 'departmentName',
d.buildDate,
d.companyId,
c.name as 'companyName',
c.buildDate as companyBuildDate,
c.location as companyLocation
from employee as e
inner join department as d on d.id = e.deptId
inner join company as c on c.id = d.companyId
order by e.id