❶ sql查询选修了全部课程的学生姓名
分析原因如下:
第一问:两个NOT EXISTS表示双重否定:没有一个选了课的学生没有选course表里的课程
select sname from student where not exists /*没有一个学生满足以下条件*/
(select * from course where not exists /*什么条件呢?没有选过Course表里的课*/
(select * from sc where sno =student.sno /*这里两个=分别指对应的关系,表示选
过课并且是Course里and cno=course.cno) 的课,只不过用not exists否定掉了*/
第二问:其实和NOT IN 是一个意思 exists只返回true 或false 这里not exists里的内容 其实就 是指学生选过的课程,再用NOT EXISTS否定了,就变成了没有选
❷ 用SQL查询同时选修了1号课和2号课的学生学号
工具/材料:以Management Studio为例。
1、首先在桌面上,点击“Management Studio”图标。
❸ 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语句查询选修了课程的学员人数
SC表里应该有个XKLB字段,看这门课是否选修还是必修,因为有的课程对A来说是必修的,而对B来说就是选修,
SELECT COUNT(DISTINCT SNO) FROM SC WHERE XKLB='选修';
❺ 请写出SQL查询统计每门课程的选修人数显示课程编号学生人数。
SQL查询语句:Select 课程编号,count(*) 学生人数From 课程 group by 选修人数;
PS:SQL用于统计和分组的函数是:
统计函数:count(*)。
分组函数:Group By 分组表达式。
❻ SQL查询选修了两门以上(包括两门)课程的学生信息
1:select sno(学生的学号) from sc(学生选课表)
group by sno having count(*)>1
2:select s.sno,s.name from student s
where s.sno in(select sno from score sc
group by sc.cno having sum(sc.sno)>2 )
3:应为三张表;学生表A 课程表B 选修表C(cid aid bid)--没有选修任何课程的学生的学号
❼ 如何用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数据库中查询选修了所有课程的学生的学号和姓名及选修门数
所有离开了数据结构(表结构)的SQL语句都是白搭!
先假设数据结构为
学生表(学号主键或设有唯一索引,姓名,性别)
课程表(课程号主键或设有唯一索引,课程名)
选课表(课程号,学号)--字段“课程号”和“学号"设有双字段唯一索引
查询出选修了所有课程的学生的学号、姓名和选修门数:
selecta.学号,b.姓名,a.cntas选修门数from
(select学号,count(1)asascntfrom选课表groupby学号
havingcount(1)=(selectcount(1)from课程表))a,
学生表bwherea.学号=b.学号;