⑴ 怎么用sql语句查询每个学生选修的课程名及其成绩
查询选修了全部课程的学生姓名
:student是学生表course是选课表sc是课程表
selectsname
fromstudent
wherenotexists
(select*
fromcourse
wherenotexists
(select*
fromsc
wheresno=student.sno
andcno=course.cno)
⑵ SQL数据库中查询选修了所有课程的学生的学号和姓名及选修门数
所有离开了数据结构(表结构)的SQL语句都是白搭!
先假设数据结构为
学生表(学号 主键或设有唯一索引,姓名,性别)
课程表(课程号 主键或设有唯一索引,课程名)
选课表(课程号,学号)-- 字段“课程号”和“学号"设有双字段唯一索引
查询出选修了所有课程的学生的学号、姓名和选修门数:
select a.学号,b.姓名,a.cnt as 选修门数 from
(select 学号,count(1) as as cnt from 选课表 group by 学号
having count(1)=(select count(1) from 课程表)) a,
学生表 b where a.学号=b.学号;
⑶ 如何用SQL查询全部学生都选了人课程号和课程名
1,全部学生都选了人课程号和课程名
select b.cno,b.cname
from 学生关系 a,课程关系 b,学习关系 c where a.sno=c.sno and b.cno=c.cno
group by b.cno,b.cname having count(*)=(select count(*) from 学生关系)
2,某位学生没有选的课程名称
select a.sname,b.cname
from 学生关系 a,课程关系 b,学习关系 c where a.sno=c.sno and b.cno=c.cno
group by a.sname,b.cname having count(*)<(select count(*) from 课程关系)
我这是列的每个学生没选的,要是查某位学生,加个条件就行
select a.sname,b.cname
from 学生关系 a,课程关系 b,学习关系 c where a.sno=c.sno and b.cno=c.cno
and a.sname='xxx'
group by a.sname,b.cname having count(*)<(select count(*) from 课程关系)
⑷ 用SQL实现,查询course表中所有课程的总学时和总学分,要求列标题分别显示“总 学时和总学分
select 课程,sum(学时) 总学时,sum(学分) 总学分 from course group by 课程
⑸ SQL怎么查询学生选修的课程名称
你可以使用以下 SQL 查询来缓昌查询学生选修的课程名称:
SELECT course_nameFROM coursesWHERE student_id = <提供的学生 ID>;
其中,courses 表包含有关课程的信息,student_id 是学生的 ID,course_name 是课程的名称。
需要注意,这只是一个示银让例查询,实际查询可能会根据锋哪局实际数据库结构略有不同。
⑹ 请问:如何用sql语句来查询有多少学生选修课呢
study(sno,cno,score)查询至少选修了两门课程的学生学号:π1(σ(1=4Λ2!=5)(study x study))。
select sno(学生的学号) from sc(学生选课表)
group by sno having count(*)>1
select a.学号,b.姓名,a.cnt as 选修门数 from
(select 学号数乎,count(1) as as cnt from 选课表 group by 学号
having count(1)=(select count(1) from 课程表)) a,
学生表 b where a.学号=b.学号;
(6)sql查询学习课程扩展阅读:
设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。记作:
R-S={t|t∈R∧t∉S}
设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的交由既属于R又属于S的元组组成。其结果关系仍为n目关系。记作:
R∩S={t|t∈R∧t∈S}
这里的笛卡尔积严格地讲是广义笛卡尔积此毕凳(Extended Cartesian Proct)。在不会出现混淆的情况下广义笛卡尔积也称为笛卡尔积。
两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。
参森旅考资料来源:网络-关系代数
⑺ 怎么用SQL语句查询所有学生所学课程(单个学生学的多门课程)的最高分数,最低分数和平均分数
SELECT student.sno AS `学号`,student.sname AS `姓名`,MAX(grade) AS `最高分`,MIN(grade) AS `最低分`,AVG(grade) AS `平均分`
FROM sc JOIN student ON sc.sno = student.sno GROUP BY sc.sno ;