请SQL高手帮我写下这道题的语句!非常感谢
用关系代数描述下列查询:现有学生关系S(S#,SNAME,AGE,SEX,SDEPT),S#,SNAME,AGE,SEX,SDEPT分别为学号、姓名、年龄、性别、系名属性...
用关系代数描述下列查询:现有学生关系 S (S#,SNAME,AGE,SEX,SDEPT),S#,SNAME,AGE,SEX,SDEPT分别为学号、姓名、年龄、性别、系名属性;
课程关系C (C#,CNAME,TEACHER),C#,CNAME,TEACHER分别为课程号、课程名、教师属性;选课关系 SC(S#,C#,G),S#,C#,G分别为学号、课程号、成绩属性。
要求:
1. 检索全体学生的成绩。
2. 检索年龄大于22的女学生学号、姓名。
3. 检索选修两门课程的学生学号。
4. 检索选修课程号为S2和S5的学生学号。
5. 检索全体学生的姓名,系名。
求大神帮忙! 展开
课程关系C (C#,CNAME,TEACHER),C#,CNAME,TEACHER分别为课程号、课程名、教师属性;选课关系 SC(S#,C#,G),S#,C#,G分别为学号、课程号、成绩属性。
要求:
1. 检索全体学生的成绩。
2. 检索年龄大于22的女学生学号、姓名。
3. 检索选修两门课程的学生学号。
4. 检索选修课程号为S2和S5的学生学号。
5. 检索全体学生的姓名,系名。
求大神帮忙! 展开
展开全部
1. 检索全体学生的成绩。
SELECT s.*,c.CNAME,sc.G FROM sc
LEFT JOIN c ON sc.`C#` = c.`C#`
LEFT JOIN s ON sc.`S#` = s.`S#`;
2. 检索年龄大于22的女学生学号、姓名。
SELECT `s#`,SNAME FROM s WHERE AGE>22 AND SEX = '女';
3. 检索选修两门课程的学生学号。
SELECT `s#` FROM s WHERE `s#` IN (
SELECT `s#` FROM sc GROUP BY `c#` HAVING count(1) = 2);
4. 检索选修课程号为S2和S5的学生学号。
-- 这个是只选了S2和S5课程号的,如果有选择多个的情况,把最后那个and那一行去掉
SELECT sc.`S#` FROM sc WHERE
`s#` IN (SELECT `s#` FROM sc WHERE `c#` = 'S2')
AND `s#` IN (SELECT `s#` FROM sc WHERE `c#` = 'S5')
AND (SELECT count(1) FROM sc AS t1 WHERE t1.`S#` = sc.`S#`) = 2;
5. 检索全体学生的姓名,系名。
SELECT SNAME,SDEPT FROM s
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询