课程数据库如下:学生(学号(C),姓名(C),性别(C),年龄(N),专业(C));课程(课程号(C),课程名(C),学分(N),学时(N));选课(学号(C),课程号(C),成绩(N))。用SQL语言完成下列功能:
(1)查询女学生的学号,姓名。
(2)查询年龄在17岁至18岁之间的学生的全部信息,并按照年龄进行排列。
(3)删除男学生的信息。
(4)查询出专业人数在10人以上的专业信息。
(5)查询出成绩在80分以上的学生的学号,姓名。
使用SQL语句完成以下操作.
答案:2 悬赏:80 手机版
解决时间 2021-03-15 14:44
- 提问者网友:暮烟疏雨之际
- 2021-03-14 15:12
最佳答案
- 五星知识达人网友:时间的尘埃
- 2021-03-14 15:20
1 计算每门课程的选课人数(用到分组、计数)
select 课程表.课程名,count(学生表.学生ID) from 课程表,学生表
where 课程表.课程id=学生表.课程id
group by 课程表.课程名;
2 查询选修了张河老师所教课程的学生姓名(用到了课程表、成绩表、学生表)
select 学生表.学生姓名,课程表.课程名 from 课程表,学生表,成绩表
where 课程表.课程id=学生表.课程id
and 学生表.学生id=成绩表.学生ID
and 课程表.课程id=成绩表.课程id
and 课程表.教师='张河';
3 把教师名称为李华的课程名称改为数据库原理
update 课程表 set 课程名='数据库原理' where 教师='李华';
创建一个视图
1 查询李华老师所教课程的学生姓名、课程名称和成绩
create view v_test1
as
select 学生表.学生姓名,课程表.课程名,成绩表.成绩 from 课程表,学生表,成绩表
where 课程表.课程id=学生表.课程id
and 学生表.学生id=成绩表.学生ID
and 课程表.课程id=成绩表.课程id
and 课程表.教师='李华';
2 查询选修了课程号为C02的选课人娄和平均成绩(使用别名)
create view v_test2
as
select count(1) as 选课人数,avg(成绩) as 平均成绩 from 课程表,学生表,成绩表
where 课程表.课程id=学生表.课程id
and 学生表.学生id=成绩表.学生id
and 课程表.课程id=成绩表.课程id
and 课程表.课程id='C02'
3 查询每个学生平均成绩大于85分的学生的学号、姓名平均成绩,按照学号的升序排序
create view v_test3
as
select 学生表.学生id, 学生表.姓名, 成绩表.平均成绩 from 学生表,(select 成绩表.学生id ,avg(成绩) as 平均成绩 from 成绩表
group by 成绩表.学生id
having avg(成绩)>85) as 成绩表
where 学生表.学生id=成绩表.学生id;
4 在成绩表中对每一个学生的成绩增加百分之十
update 成绩表 set 成绩=成绩+成绩*0.1;
select 课程表.课程名,count(学生表.学生ID) from 课程表,学生表
where 课程表.课程id=学生表.课程id
group by 课程表.课程名;
2 查询选修了张河老师所教课程的学生姓名(用到了课程表、成绩表、学生表)
select 学生表.学生姓名,课程表.课程名 from 课程表,学生表,成绩表
where 课程表.课程id=学生表.课程id
and 学生表.学生id=成绩表.学生ID
and 课程表.课程id=成绩表.课程id
and 课程表.教师='张河';
3 把教师名称为李华的课程名称改为数据库原理
update 课程表 set 课程名='数据库原理' where 教师='李华';
创建一个视图
1 查询李华老师所教课程的学生姓名、课程名称和成绩
create view v_test1
as
select 学生表.学生姓名,课程表.课程名,成绩表.成绩 from 课程表,学生表,成绩表
where 课程表.课程id=学生表.课程id
and 学生表.学生id=成绩表.学生ID
and 课程表.课程id=成绩表.课程id
and 课程表.教师='李华';
2 查询选修了课程号为C02的选课人娄和平均成绩(使用别名)
create view v_test2
as
select count(1) as 选课人数,avg(成绩) as 平均成绩 from 课程表,学生表,成绩表
where 课程表.课程id=学生表.课程id
and 学生表.学生id=成绩表.学生id
and 课程表.课程id=成绩表.课程id
and 课程表.课程id='C02'
3 查询每个学生平均成绩大于85分的学生的学号、姓名平均成绩,按照学号的升序排序
create view v_test3
as
select 学生表.学生id, 学生表.姓名, 成绩表.平均成绩 from 学生表,(select 成绩表.学生id ,avg(成绩) as 平均成绩 from 成绩表
group by 成绩表.学生id
having avg(成绩)>85) as 成绩表
where 学生表.学生id=成绩表.学生id;
4 在成绩表中对每一个学生的成绩增加百分之十
update 成绩表 set 成绩=成绩+成绩*0.1;
全部回答
- 1楼网友:北方的南先生
- 2021-03-14 16:30
1
select * from 学生表 a,班级表 b where a.班级编号=b.班级编号
2
select top 10 * from 班级表
3
select a.姓名,b.课程名称,c.成绩
from 学生表 a,课程表 b,成绩表 c where a.学号=c.学号 and b.课程编号=c.课程编号 and a.学号='20050101'
4
select top 10 a.姓名,b.课程名称,c.成绩
from 学生表 a,课程表 b,成绩表 c where a.学号=c.学号 and b.课程编号=c.课程编号 and a.学号='20050101'
order by c.成绩 desc
5
select top 5 * into 科技学生信息表 from 学生表
6
select a.姓名,b.课程名称,c.成绩
from 学生表 a,课程表 b,成绩表 c where a.学号=c.学号 and b.课程编号=c.课程编号
and a.学号='201001002'
and c.成绩 between 80 and 90
7
select * from 课程表 where 课程名称 like '大学%'
8
select a.姓名,a.学号,avg(b.成绩) as 平均成绩
from 学生表 a,成绩表 b where a.学号=b.学号 group by a.姓名,a.学号
9
select a.姓名,a.学号,sum(b.成绩) as 总分,count(*) as 课程门数,avg(b.成绩) as 平均分
from 学生表 a,成绩表 b where a.学号=b.学号 group by a.姓名,a.学号
10
select a.学号,a.姓名,b.成绩,b.课程编号
from 学生表 a,成绩表 b where a.学号=b.学号
希望你能通过以上的答案,自己弄懂都是什么意思,over
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯