写给一个哥们的SQL
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lavasoft.blog.51cto.com/62575/66481 |
写给一个哥们的SQL
有三张表:
学生:S(SNO,SNAME) 课程:C(CNO,CNAME) 成绩:SC(SNO,CNO,SCORE) 目标:实现一些查询或修改。
-- 1、姓名为张明的学生选修的课程的课程号 SELECT DISTINCT C.CNO FROM C, S, SC WHERE S.SNO = SC.SNO AND C.CNO = SC.CNO AND S.SNAME = '张明'; -- 2、选修了学号为10005的学生所修所有课程的学生学号 SELECT S.SNO FROM C, S, SC WHERE S.SNO = SC.SNO AND C.CNO = SC.CNO AND (SELECT DISTINCT C.CNO FROM C, S, SC WHERE S.SNO = SC.SNO AND C.CNO = SC.CNO AND C.CNO = 10005) IN C.CNO; -- 3、所修课程有5门成绩>=90分的学生学号 SELECT X.XSNO FROM (SELECT COUNT(*) AS ROWCOUNT, S.SNO AS XSNO FROM C, S, SC WHERE S.SNO = SC.SNO AND C.CNO = SC.CNO AND SC.SCORE >= 90 GROUP BY S.SNO) AS X WHERE X.ROWCOUNT >= 5; -- 4、所有课程名为数据库系统概论的成绩+10分 UPDATE SC SET SCORE = SCORE + 10 WHERE SC.CNO = (SELECT CNO FORM C WHERE C.CNAME = '数据库系统概论'); 没有经过实际验证,如有写错的地方,还请各位留言指正!
本文出自 “熔 岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/66481 本文出自 51CTO.COM技术博客 |



leizhimin
博客统计信息
热门文章
最新评论
友情链接