作用:对数据的一种重构,不影响原表数据;
提高安全性。可以给不同用户提供不同的视图;
使得数据更加清晰;
简化高频的复杂操作,就像对复杂操作的一种封装。
视图(虚拟表,但是用show tables;可以查看到),意即映射。
先用select语句查出一部分数据(可以是一个表中的,也可以是多个表中的),再将这些数据创建出一个快捷方式,去存储这部分数据,不是将原有数据复制一份出来,所以不会额外占用数据库空间。
用如下语句可创建视图hobby_student:
create view hobby_student as select stu.id, stu.name, hob.hobby from stu left join hob;
一般而言,仅仅对视图表执行读操作,不执行写操作。
当视图是一个表中数据的映射时,执行写操作可以成功,若视图是多个表的映射,再执行写操作时,会报错,因为有多个表,系统不知要修改哪个!
区分原表和视图表的方法(基本是一个固定语句):
show full tables in stu(表名) where table type like “view”;
视图删除:
drop view if exists 视图表名;
修改视图语句中的内容:
方式一:(只需要将create修改为alter)
alter view hobby_student as select stu.id, stu.name, hob.hobby from stu left join hob;
方式二:
create 【or repalce】 view .....;