请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. 检索全体学生的姓名,系名。
求大神帮忙!
展开
 我来答
zjgzhengxian
2017-06-11 · TA获得超过1276个赞
知道小有建树答主
回答量:736
采纳率:100%
帮助的人:364万
展开全部

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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式