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_各系学生人数