【SQL】实验三 视图管理和使用

该实验详细介绍了如何使用SQL创建视图并进行数据查询。实验内容包括基于学生表S和学生选修课程表SC创建视图V-SSC,并通过视图查询平均成绩在90分以上的学生信息;同时,还涉及到了多表关联视图的建立及分组查询,以及按属性分组求最大值和最小值的视图操作。实验旨在提升对SQL视图的理解和应用能力。
摘要由CSDN通过智能技术生成

实验目的:

①如何创建视图
②如何在视图中进行数据查询

实验内容:

①创建视图
②查询视图

实验步骤与过程:

一、建库

在这里插入图片描述

二、完成习题

第一题

设有学生表S(SNO,SN)【SNO为学生号, SN 为 姓 名】

学 生 选 修 课 程 表 SC(SNO,CNO,CN,G)【CNO 为课程号,CN 为课程号,G为成绩】

试用 SQL 语言完成以下各题∶

1、建立一视图 V-SSC(SNO,SN,CNO,CN,G)

2、从视图 V-SSC上查询平均成绩在 90分以上的 SN,CNO,CN 和 G

·根据题目建表:

-设计“S”表结构:
根据属性需求设定相关字段>>根据字段需求设定适合的数据类型和字符长度>>设置主键(SNO)

在这里插入图片描述

-设计“SC”表结构:
根据属性需求设定相关字段>>根据字段需求设定适合的数据类型和字符长度>>设置主键(SNO,CNO)

在这里插入图片描述

·根据题目录入记录:
①录入“S”表记录:
在这里插入图片描述
②录入“SC”表记录:
在这里插入图片描述

1、建立一视图 V-SSC(SNO,SN,CNO,CN,G)

命令输入:

Create View V_SSC
As Select S.SNO,SN,CNO,CN,SC.G
   From S,SC
   Where S.SNO = SC.SNO And S.SNO = SC.SNO;

查看视图:
在这里插入图片描述

2、从视图 V-SSC上查询平均成绩在 90分以上的 SN,CNO,CN 和 G

命令输入:

Select V_SSC.SNO,CNO,CN,G
From V_SSC(Select SNO
 		   From V_SSC
 		   Group By SNO Having AVG(G) > 90)As T
Where T.SNO = V_SSC.SNO;

得到查询结果:
在这里插入图片描述

第二题

在这里插入图片描述

在这里插入图片描述

·根据题目建表:
-设计“R”表结构:
根据属性需求设定相关字段>>根据字段需求设定适合的数据类型和字符长度
在这里插入图片描述

-设计“S”表结构:
根据属性需求设定相关字段>>根据字段需求设定适合的数据类型和字符长度
在这里插入图片描述

-设计“T”表结构:
根据属性需求设定相关字段>>根据字段需求设定适合的数据类型和字符长度
在这里插入图片描述
·根据题目录入记录:
-录入“R”表记录:
在这里插入图片描述
-录入“S”表记录:
在这里插入图片描述
-录入“T”表记录:
在这里插入图片描述

1、将R、S、T三个关系按关联属性建立一个视图R-S-T

命令输入:

Create View R_S_T
As Select S.A,B,C,S.D,E,F
   From S,R,T
   Where R.A = S.A And S.D = T.D;

查看视图:
在这里插入图片描述

2、对视图R-S-T按属性A分组后,求属性C和E的平均值。

命令输入:

Select A,AVG(C) C平均值,AVG(E) E平均值
From R_S_T
Group By A;

得到查询结果:
在这里插入图片描述

第三题

在这里插入图片描述

·根据题目建表:

-设计“R”表结构:

根据属性需求设定相关字段>>根据字段需求设定适合的数据类型和字符长度
在这里插入图片描述

·根据题目录入记录:
-录入“R”表记录:
在这里插入图片描述

1、按属性A分组,求出每组中在属性 C上的最大值和最小值,且将它们置于视图 RVE中

命令输入:

Create View RVE
As Select A,MAX(C) C最大值,MIN(C) C 最小值
   From R
   Group By A;

查看视图:
在这里插入图片描述

2、在视图 RVE 中查询属性 A="98"的记录

命令输入:

Select *
From RVE
Where A = '98';

得到查询结果:
在这里插入图片描述

第四题

假定一个工厂由不同的车间构成,每个员工的工资的计算方法如下

对每个员工A,A的月工资=A生产的部件的价值x0.1%+A的月基本工资+A 所在车间的月平均奖金。假定一个员工只能在一个车间工作。

·根据题目建表:
-设计“工资表”表结构:
根据属性需求设定相关字段>>根据字段需求设定适合的数据类型和字符长度>>设置主键(工号)
在这里插入图片描述

·根据题目录入记录:
-录入“工资表”表记录:
在这里插入图片描述

1、求工厂的基本工资总和

命令输入:

Select SUM(基本工资) 基本工资总和
From 工资表;

查询结果:
在这里插入图片描述

2、求每个员工所在车间月平均奖金

命令输入:

Create View 车间月平均奖金(车间,月平均奖金)
As Select 车间,AVG(月平均奖金) 月平均奖金
   From 工资表
   Group By 车间;

查看视图:
在这里插入图片描述

3、求所有车间每个员工的月工资

命令输入:

Create View 新工资表
As Select 工号,工资表.车间,姓名,生产部件价值,基本工资,车间月平均奖金,月平均奖金,总工资
   From 车间月平均奖金,工资表
   Where 车间月平均奖金.车间 = 工资表.车间;

查看视图:
在这里插入图片描述

命令输入:

Update 新工资表
Set 总工资 = 生产部件价值 * 0.001 + 基本工资 + 月平均奖金;

查看视图:
在这里插入图片描述

实验反思:

·当目标列为*时,视图名后的字段不可省略
在这里插入图片描述
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Uyoin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值