怎样用sql语言在数据库查找没有选修任何课程学生的学号和姓名

怎样用sql语言在数据库查找没有选修任何课程学生的学号和姓名,第1张

假设学生表为A,学号字段为id,姓名字段为name;\x0d\课程表为B,其中row_id为课程编号,stu_no为选修该门课的学生的学号\x0d\SQL:\x0d\SELECT Aid,Aname\x0d\FROM A\x0d\WHERE Aid NOT IN (SELECT DISTINCT Bstu_no FROM B)

所有离开了数据结构(表结构)的SQL语句都是白搭!

先假设数据结构为

学生表(学号 主键或设有唯一索引,姓名,性别)

课程表(课程号 主键或设有唯一索引,课程名)

选课表(课程号,学号)-- 字段“课程号”和“学号"设有双字段唯一索引

查询出选修了所有课程的学生的学号、姓名和选修门数:

select a学号,b姓名,acnt as 选修门数 from

(select 学号,count(1) as as cnt from 选课表 group by 学号

having count(1)=(select count(1) from 课程表)) a,

学生表 b where a学号=b学号;

1、首先在电脑上打开数据库软件。然后附加有学生表和成绩表的数据库。

2、然后选中数据库,右键选择新建查询。在右边的空白框,输入命令select 学生表学号,avg(成绩) as 平均分。

3、将学生表和成绩表关联起来。命令为from 学生表 join 成绩表 on 学生表学号=成绩表学号。

4、用group by 命令对学生表中的学号进行分组。命令为group by 学生表学号。

5、用having命令。输出平均分大于80分的条件。

6、然后在表中没有平均分一项。所以要用as命令进行附加。

1select from 表名 where 学号 like '%[4,5]'

2select from 表名 group by 学生号 having 成绩>avg(成绩)

1select from XSQK,KC,XS_KC where XSQK学号=XS_KC学号 and XSQK课程号=XS_KC课程号 and XSQK学号 like '%[4,5]'------------------的部分是查询所有列,你可以针对的填上你想要的列

2select from XSQK,KC,XS_KC -----------这是要从3个表中查询

where XSQK学号=XS_KC学号 and XSQK课程号=XS_KC课程号 -------这是3个表关联到一起

and XS_KC学号 in---------我限定的条件 学号在in里面

(select XS_KC学号 from XS_KC group by XS_KC学号 having min(成绩)>60)

------------嵌套的查询是 通过学号分组 每个人有多个成绩,最小的成绩大于60 说明他所有成绩都大于60 ,返回的是学号,

-----------------最终结果是 返回所有成绩都大于60的所有同学的全部信息

如果不明白 追问

以上就是关于怎样用sql语言在数据库查找没有选修任何课程学生的学号和姓名全部的内容,包括:怎样用sql语言在数据库查找没有选修任何课程学生的学号和姓名、SQL数据库中查询选修了所有课程的学生的学号和姓名及选修门数、SQL命令 “学生”数据库中有 “学生表”、“课程表”和 “成绩表”。 “学生表”中包含学号、姓名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10150526.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存