如何用sql语言在数据库中查找没有选修任何课程的学生的学号,姓名的命令

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

假设学生表为A,学号字段为id,姓名字段为name;

课程表为B,其中row_id为课程编号,stu_no为选修该门课的学生的学号

SQL:

SELECT Aid,Aname

FROM A

WHERE Aid NOT IN (SELECT DISTINCT Bstu_no FROM B)

先假设数据结构为:

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

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

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

insert into s values ('s1', '朱', '开发本部', 23);

insert into s values ('s2', '牛', '人事部', 25);

insert into s values ('s3', '杨', '财务部', 26);

insert into s values ('s4', '马', '开发本部', 22);

insert into s values ('s5', '吕', '人事部', 27);

insert into s values ('s6', '于', '开发本部', 28);

insert into s values ('s7', '侯', '开发本部', 28);

扩展资料 :

最基本的索引类型,没有唯一性之类的限制。普通索引可以通过以下几种方式创建:

创建索引,例如CREATE INDEX <索引的名字> ON tablename (列的列表);

修改表,例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);

创建表的时候指定索引,例如CREATE TABLE tablename ( [], INDEX [索引的名字] (列的列表) );

参考资料来源:百度百科-索引

看你什么数据库了

每种数据库的方式不太一样的

给你sqlserver的方法

select 

课程名称,学分

from 表

where left(课程名称,3)='计算机'

and right(课程名称,2)='基础'

表结构都没有,怎么弄

假定是经典结构

S

Sno Sname

SC

Sno Cno grade

SELECT SSname, SCgrade

FROM SC t1, S

WHERE SCSno = SSno

AND NOT EXISTS (SELECT 1 FROM SC WHERE Cno = t1Cno AND grade > t1grade)

或者

SELECT SSname, SCgrade

FROM SC, S,

(select Cno, MAX(grade) grade FROM SC GROUP BY CNO) t1

WHERE SCSno = SSno

AND SCCno = t1Cno

AND SCgrade = t1grade

以上就是关于如何用sql语言在数据库中查找没有选修任何课程的学生的学号,姓名的命令全部的内容,包括:如何用sql语言在数据库中查找没有选修任何课程的学生的学号,姓名的命令、简单数据库查询:查询选修课程超过5门的学员学号和所属单位、在数据库中,怎么查询以'计算机'开头,'基础'结尾的课程名称,学分等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存