sql相关查询
发布网友
发布时间:2022-05-27 18:47
我来回答
共3个回答
热心网友
时间:2023-11-18 05:07
首先了解SQL Select语句的功能和语法:
SELECT 语句用于从表中选取数据。
结果被存储在一个结果表中(称为结果集)。
语法:
SELECT 列名称 FROM 表名称 或者 SELECT * FROM 表名称
上面是一个SQL的嵌套查询,就像抽丝剥茧一样,我们首先从最里面的查询入手。
1、SELECT *FROM SC WHERE Sno=Student.Sno AND Cno=Course.Cno --查询选修表中选课的所有学生信息
2、SELECT * FROM Course --查询课程表中课程的所有信息
3、SELECT Sname FROM Student --查询学生表中学生姓名
在上面三个查询中,第3个查询是主查询,也是这个嵌套查询的关键,查询满足条件的学生姓名。
结合2,3两个查询和他门中间的连接条件,我们不难发现:
4、SELECT * FROM Course WHERE NOT EXISTS (SELECT * FROM SC WHERE Sno=Student.Sno AND Cno=Course.Cno)); --查询不在选修表中的课程信息即没有学生选修的课程信息
再结合第4,1查询条件和连接条件,得出最终所要查询的结果:
5、SELECT Sname FROM Student WHERE NOT EXISTS (SELECT * FROM Course WHERE NOT EXISTS (SELECT * FROM SC WHERE Sno=Student.Sno AND Cno=Course.Cno)); --查询所有没有未选择课程的学生。
当然,听起来比较绕,其实就是查询选择了所有课程的学员名称。希望你能理解!
热心网友
时间:2023-11-18 05:07
第一步:
SELECT *
FROM SC
WHERE Sno=Student.Sno
AND Cno=Course.Cno 查询SC表中条件为Sno等于Student表中的Sno、Cno等于Course表中的Cno的所有数据
第二步:
SELECT *
FROM Course
WHERE NOT EXISTS
查询Course表中存在但是在第一步查询结果中不存在的所有数据
第三步:
SELECT Sname
FROM Student
WHERE NOT EXISTS
查询Student表中所有不符合第二步查询结果的Sname值
热心网友
时间:2023-11-18 05:08
这个怎么像我公司给我做测试时 我做的呀