当前位置:首页 » 编程语言 » sql查询选了课的人
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql查询选了课的人

发布时间: 2022-09-11 01:50:18

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.学号;