MySql-视图操作
视图
视图本质上是一张表或多张表的查询结果构成的一张虚拟表。可以使用视图来避免多次编写sql的问题;也可以用不同的视图来查看表中的部分记录
创建视图
create [or replace] view 视图名[(column_list)] as 查询语句
# or replace:表示如果已经存在相同名字的视图,则替换原有视图
# column_list:指定哪些字段要出现在视图中
# 视图是一张虚拟表,所以在视图中的数据不会出现在硬盘上
查看视图
desc view_name; # 查看视图的数据结构
show create view view_name [\G]; # 查看创建视图语句
select * from view_name; # 查看视图内的数据,同查表数据一样
修改视图
alter view view_name as 查询语句;
删除视图
drop view view_name;
举例
# 数据准备
create database db02 charset utf8;
use db02
create table student(
s_id int(3),
name varchar(20),
math float,
chinese float
);
insert into student values(1,'tom',80,70),(2,'jack',80,80),(3,'rose',60,75);
create table stu_info(
s_id int(3),
class varchar(50),
addr varchar(100)
);
insert into stu_info values(1,'二班','安徽'),(2,'二班','湖南'),(3,'三班','黑龙江');
# 创建视图包含编号、学生的姓名和班级
create view stu_v(编号,姓名,班级) as select student.s_id,name,class from student join stu_info on student.s_id = stu_info.s_id;
# 修改视图
alter view stu_v(编号,姓名) as select student.s_id,name from student join stu_info on student.s_id = stu_info.s_id;
# 删除视图
drop view stu_v;
注意:对视图数据的insert update delete会同步到原表中,但由于视图可能是部分字段,很多时候会失败