admin 管理员组文章数量: 887021
mysql 视图
视图
1、形象:视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。
例如:
在实际工作中,企业的员工信息表存放了企业所以员工的详细信息,不同职位的人员对表中查询的数据可能不同。
2、具体:视图是从一个或几个基本表(或视图)导出的表。
区别:它与基本表不同,是一个虚表。数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以基本表中的数据发生变化,从视图中查询出的数据也就随之改变了。
3、如何创建和使用视图:
(1)使用SQL语句创建视图
使用SQL语句创建视图的语法格式:
Create view [if exists] 视图名(vi_名字,view_名字)
As
<select语句>;
例1:创建成绩>90的视图 vi_degree,再在该视图中查询>95的成绩信息(sc)
create view view_成绩大于90 as select * from sc where degree>90;
例2:创建女生视图vi_girls,再在该视图中查询张姓的同学(student)
create view view_girls as select * from student where ssex="女”;
注意点:
1、视图中查询不到数据,可能创建视图的条件中使用的字段的字符集为utf8.将utf8字符集改为gbk或直接删掉;
如:用alter 命令更改某列的字符集
alter table student modify ssex varchar(2) charset gbk not null;
2、视图名:一般以view_xxx或v_xxx的样式来命名;
3、如果有同名的视图,需要先删除,再创建。
(2)使用SQL语句删除视图
Drop view [IF EXISTS] 视图名;
Drop view if exists view_student;
(3)使用SQL语句查看视图数据
使用SQL语句查看视图的语法格式如下:
Select字段1,字段2,……字段n from view_name;
查看数据库中已存在的视图:
SELECT * FROM information_schema.views;select table_name,table_schema from information_schema.views;
show create view 视图名#
题型综合:
(1)创建成绩不及格的学生的视图,并在该视图中查找学生的系别;
create view view_成绩不及格 as select * from sc where degree<60;
(2)创建一个选修了”高等数学”的学生的学号,名字,系别的视图;
修改字符集:alter table 表名 modify 字段名 数据类型 charset 字符集;
create view view_选修了高等数学 as select sno,sname,sdept from sc where cno="高等数学";
(3)视图和表的关系
a、对原表的修改肯定会影响到视图
例1:创建的女生视图vi_girls,将”李静”改为”李静静”,然后查看视图
b、对视图的修改也可以影响到原表
例2:创建的女生视图vi_girls,向view_girls插入新的记录
(sno,sname,ssex)值为(”2019010101”,”小红”,”女”);
(sno,sname)值为(“2019010101”,”小芳”);
c、并不是所有的视图都可以修改
例:创建一个包含学号、姓名、课程名、成绩,取成绩的前10名的视图vi_student_2.
删除上述视图中的最后一条记录,查看能否成功?
本文标签: mysql 视图
版权声明:本文标题:mysql 视图 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1687280730h84559.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论