假设学生表为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门的学员学号和所属单位、在数据库中,怎么查询以'计算机'开头,'基础'结尾的课程名称,学分等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)