数据库-视图view(查询自己的成绩,每个同学的平均分,统计各系人数,单个系部学生信息,删除视图 )

1、查询你自己各门课的成绩:V_自己的成绩(学号、姓名、课程名、分数)

create view v_自己的成绩
as
  select sc.学号,姓名,课程名,分数 from  学生表 s , 课程表 c , 成绩表 sc
  where s.学号=sc.学号 and c.ID=sc.课程ID and sc.学号='151011029'

在这里插入图片描述
2、查询你自己各门课的成绩:V_自己的成绩(学号、姓名、课程名、分数,要求这几个字段用英文命名:Num,Name,CourseName,Score)

create view v_自己的成绩(Num , Name , CourseName , Score)
as
  select sc.学号,姓名,课程名,分数 from  学生表 s , 课程表 c , 成绩表 sc
  where s.学号=sc.学号 and c.ID=sc.课程ID and sc.学号='151011029'

在这里插入图片描述
3、统计每个同学的平均成绩:V_每人平均分(学号、姓名、平均分),按平均分降序排列

create view v_每人平均分
as
   select s.学号 , c.姓名 , avg(分数) as 平均分
 from 成绩表 s,学生表 c
 where s.学号=c.学号
 group by s.学号,c.姓名
 order by 平均分 desc

这里有问题,视图不能用order by 。会出现
“除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。”

网上说添加 top 100 percent
但是我添加了之后可以执行,但是执行后并没有排序。

在这里插入图片描述
4、建立统计每个系的学生人数视图:V_各系学生人数(系名、学生人数),按人数升序排列

create view v_各系学生人数(系名,学生人数)
as 
  select top 100 percent s.系部ID , count(*)as 学生人数
  from 学生表 s ,系部表 c
  where s.系部ID = c.系部ID
  group by s.系部ID
  order by 学生人数 asc

在这里插入图片描述
5、建立计算机系学生的视图:V_计算机系学生。要求能看到学生的学号、姓名、性别和联系电话。

create view v_计算机系学生
as
  select 学号 ,姓名 ,性别, 联系电话
  from 学生表

在这里插入图片描述
6、删除统计每个系的学生人数R 视图:V_各系学生人数

drop view v_各系学生人数
  • 22
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值