MySQL基础学习第十四课(视图的应用案例)

本文详细介绍了如何在MySQL中使用视图来管理和查询报考北京大学和清华大学的理科学生信息,涉及数据表创建、数据填充、视图定义及更新,展示了视图在数据筛选和权限控制中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

视图(知识点)

MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中。行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。

数据库中只存放了视图的定义,并没有存放视图中的数据,这些数据都存放在定义视图查询所引用的真实表中。使用视图查询数据时,数据库会从真实表中取出对应的数据。因此,视图中的数据是依赖于真实表中的数据的。一旦真实表中的数据发生改变,显示在视图中的数据也会发生改变。

视图可以从原有的表上选取对用户有用的信息,那些对用户没用,或者用户没有权限了解的信息,都可以直接屏蔽掉,作用类似于筛选。这样做既使应用简单化,也保证了系统的安全。

视图(应用案例)

现有来自河北和山东的三个理科学生报考北京大学(Peking University)和清华大学的(Tsinghua University),现在需要对其考试的结果进行查询和管理,清华大学的录取分数为725,北京大学的录取分数为720。需要创建三个表对学生的信息进行管理,这三个表分别是学生表、报名表和成绩表,其中这三个表的主键(s_id)是统一的。

  1. 进入mysql服务器中,首先执行“drop database if exists five”语句,以此确保打开的mysql中没有数据库five。
  2. 创建名为five的数据库,并选择使用five数据库,以下的所有表均创建在five数据库内。
  3. 练习题:按以下要求创建数据表stu。

  1. 字段s_id:设置数据类型int(11),主键约束;
  2. 字段s_name:设置数据类型varchar(20),非空约束。
  3. 字段addr:设置数据类型varchar(50),非空约束。
  4. 字段tel:设置数据类型varchar(50),非空约束。

请将建表过程代码截图提交:

 

  1. 练习题:向stu数据表添加如下数据:

 

  1. 练习题:按以下要求创建数据表sign

 

  1. 字段s_id:设置数据类型int(11),主键约束;
  2. 字段s_name:设置数据类型varchar(20),非空约束。
  3. 字段s_sch:设置数据类型varchar(50),非空约束。
  4. 字段s_sign_sch:设置数据类型varchar(50),非空约束。

请将建表过程代码截图提交:

 

  1. 练习题:向sign数据表添加如下数据:

 

7、练习题:按以下要求创建数据表stu_mark。

  1. 字段s_id:设置数据类型int(11),主键约束;
  2. 字段s_name:设置数据类型varchar(20),非空约束。
  3. 字段mark:设置数据类型int(11),非空约束。

请将建表过程代码截图提交:

 

8、练习题:向stu_mark数据表添加如下数据:

 

9、创建考上北京大学(Peking University)(录取分数720)的学生视图。

视图的名称为“view_beida”,视图的内容包含考上北大的学生学号、姓名、成绩和报考学校名称4个字段。

解题思路:

  1. 创建该视图使用的基本表是sign(报名表)和stu_mark(成绩表);
  2. 考上北大需要满足的条件:

(2.1)报考了北大:sign.s_sign_sch='peking university'

(2.2)分数达到720:stu_mark.mark>=720

(2.3)sign.s_id=stu_mark.s_id(用于连接sign和stu_mark)

请将创建视图语句和查询视图结果截图提交:

 

10、创建考上清华大学(Tsinghua University)(录取分数725)的学生视图。

视图的名称为“view_qinghua”,视图的内容包含考上清华的学生学号、姓名、成绩和报考学校名称4个字段(解题思路和上题一样)。

请将创建视图语句和查询视图结果截图提交:

 

11、更新视图view_qinghua

(1)Huangyun成绩录入错误,多录了10分,接下来对Huangyun的成绩进行修改,减去多录的10分。

提示:使用update语句对stu_mark基本表进行更新,减去多录的10分。更新语句格式为:update 表名称 set 列名称 = 新值 where 列名称 = 原来值;

将update更新语句截图提交:

 

(2)使用select语句查看view_qinghua视图

将查询结果截图提交:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值