视图:
视图:view,是一种有结构(有行有列)但是没结果(结构中不存在真实的数据)的虚拟表,虚拟表的结构来源不是自己定义,
而是从对应的基表中产生(视图的数据来源)。
创建视图:
基本语法:create view 视图名字 as select 语句; -- select语句可以是普通查询,可以是连接查询,可以是联合查询
可以是子查询。
创建单表视图:基表只有一个
创建多表视图:基表来源至少两个
-- 视图:单表+多表
create view my_v1 as select * from my_student;
create view my_v2 as select * from my_student;
create view my_v3 as select * from my_student
as s left join my_class c on s.c_id =c.id; -- id重复
-- 多表视图
create view my_v3 as
select s.*,c.c_name,c.room from my_student as s
left join my_class c
on s.c_id =c.id; -- id重复
查看视图:
查看视图:查看视图的结构,视图是一张虚拟表,表的查看方式都适用于视图:show tables [like]/desc 视图名字
/show create table 视图名字;
视图比表还是有关键字的区别:view,查看表(视图)的创建语句的时候可以使用view关键字。
-- 查看视图创建语句
show create view my_v3\G;
视图一旦创建:系统会在视图对应的数据库文件夹下构建一个对应的结构文件:frm文件
使用视图:
使用视图主要是为了查询,将视图当做表一样查询即可。视图的执行其实本质上就是执行封装的select语句。
视图的修改:
视图本身不可以修改,但是视图的来源是可以修改的,修改视图:修改视图本身的来源语句(select 语句)
alter view 视图名字 as 新的select 语句。
-- 修改视图
alter view my_v1 as
select id,name,age,sex,height,c_id from my_student;