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会同步到原表中,但由于视图可能是部分字段,很多时候会失败

posted @ 2019-07-16 20:55  Never&say&die  阅读(327)  评论(0编辑  收藏  举报