MySQL创建表视图及多表视图
·
MySQL视图(View)是一种虚拟的表,同真实的表一样,拥有相同的行和列
,但视图并不实际存在于数据库中,而是在你使用的时候去动态的查询表,view的行和列都是基于你使用view的时候动态的去查询表的数据而生成视图
数据库只存view的定义并没有存放view的数据
在你使用视图(view)时,数据库会从真实表内取出view所对应的数据
也就是说view是的数据是完全依赖于真实表的数据,当真实表的数据发送修改,删除,使用视图(view)查询到的虚拟表也将会是被修改删除后的数据
基于单表创建视图
#创建学生表
create table Student(Sid varchar(6), Sname varchar(10), Sage datetime, Ssex varchar(10));
#插入数据
insert into Student values('01' , '赵雷' , '1990-01-01' , '男');
insert into Student values('02' , '钱电' , '1990-12-21' , '男');
insert into Student values('03' , '孙风' , '1990-05-20' , '男');
#基于单表创建视图
create view <视图名> as <select语句>
create view view_stuent_info as select `st`.s_id`, `st`.`s_name` from student ;
基于多表创建视图
#创建成绩表
create table SC(Sid varchar(10), Cid varchar(10), score decimal(18,1));
insert into SC values('01' , '01' , 80);
insert into SC values('01' , '02' , 90);
insert into SC values('01' , '03' , 99);
insert into SC values('02' , '01' , 70);
insert into SC values('02' , '02' , 60);
insert into SC values('02' , '03' , 80);
insert into SC values('03' , '01' , 80);
insert into SC values('03' , '02' , 80);
insert into SC values('03' , '03' , 80);
#基于多表创建视图
create view <视图名> as 查询语句 表1 表2
create view view_student_score as select `st`.`s_id`,`sc`.`s_score`
from student st left join score sc
on `st`.`s_id` = `sc`.`s_id`
where `st`.`s_sex` = '男';
更多推荐

所有评论(0)