视 图
视图是从一个或多个表中导出的表,它是一种虚拟存在的表,并且表的结构和数据依赖于基本表。通过视图不仅可以看到存放在基本表中的数据,并且还可以像操作基本表一样,对视图中存放的数据进行查询、修改、和删除。与直接操作基本表相比,视图具有以下优点。
- 简化查询语句
视图不仅可以简化用户对数据的理解,也可以简化对数据的操作。日常开发中可以将经常使用的查询定义为视图,从而使用户避免大量重复的操作。
- 安全性
通过视图用户只能查询和修改他们所能见到的数据,数据库中的其他数据则既看不到也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定列上。
- 逻辑数据独立性
视图可以帮助用户屏蔽真实表结构变化带来的影响。
综上所述,在操作数据库时,由于视图是在基本表上建立的表,它的结构和数据都来自于基本表,因此,诸如更新数据等操作,都可以在视频上进行。
- 创建视图的语法格式(可通过各种搜索方式获取)
- Create view 视图名 as select语句;
- 进入mysql服务器中,首先执行“drop database if exists five”语句,以此确保打开的mysql中没有数据库five。
- 创建名为five的数据库,并选择使用five数据库。
- 练习题:使用数据库five并按以下要求创建数据表student。
- 字段s_id:设置数据类型int(3);
- 字段name:设置数据类型varchar(20)。
- 字段math:设置数据类型float。
- 字段chinese:设置数据类型float。
请将建表过程代码截图提交:
- 练习题:向student数据表添加如下数据:
- 创建一个名为“view_stu”的视图,查询student表中name、math、chinese的记录。
请将创建视图语句和查询视图结果截图提交:
- 创建一个名为“view_stu1”的视图,查询student表中s_id字段值为1、2、3并且math字段值在75至85之间的学生姓名(name)的记录。
请将创建视图语句和查询视图结果截图提交:
- 创建一个名为“view_stu2”的视图,查询student表中name字段值包含“a”或math字段值大于85的记录。
请将创建视图语句和查询视图结果截图提交:
- 创建一个名为“view_stu3”的视图,查询student表中的所有记录,并按照chinese字段值进行降序排序。
请将创建视图语句和查询视图结果截图提交:
- 创建一个名为“view_stu4”的视图,查询student表中math字段的平均值和chinese字段值的总和。
请将创建视图语句和查询视图结果截图提交:
- 在多表上创建视图
在mysql中除了可以在单表上创建视图,还可以在两个或者两个以上的基本表上创建视图。
- 练习题:使用数据库five并按以下要求创建数据表stu_info。
- 字段s_id:设置数据类型int(3);
- 字段class:设置数据类型varchar(50)。
- 字段addr:设置数据类型varchar(100)。
请将建表过程代码截图提交:
- 练习题:向stu_info数据表添加如下数据:
- 创建一个名为“view_stu5”的视图,查询student.s_id=stu_info.s_id的student表中的s_id字段、name字段和stu_info表中的class字段。
请将创建视图语句和查询视图结果截图提交:
使用“show create view”查看“view_stu5”的视图数据表。
请将查看结果截图提交:
视图其他知识点语法格式:
- 查看视图
Desc 视图名;
- 使用show create view 查看视图
show create view 视图名\G
(3)删除视图语法格式:
Drop view 视图名;
(4)查看所有视图语法格式:
show table status where comment='view'\G