- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机的sql练习题
计算机的sql练习题(含答案)
--试题1、2(表的建立及原题请参考邹健老师的专栏:/zjcxc/)
(注:邹健老师的专栏有部分答案有问题)
SELECT * FROM studentSELECT * FROM courseSELECT * FROM sc
--1. 使用标准SQL嵌套语句查询选修课程名称为’effect c++’的学员学号和姓名
SELECT sname,sno FROM student WHERE sno in(?SELECT sno FROM sc WHERE cno=(??SELECT cno FROM course WHERE cname=effect c++))--网上实现代码:SELECT sname,sno FROM studentWHERE sno IN(??? SELECT sno FROM course,sc??? ?WHERE o=o AND cname=effect c++)
?
--2.使用标准SQL嵌套语句查询选修课程编号为’002’的学员姓名和年龄SELECT sname,sage FROM studentWHERE sno IN(??? SELECT sno FROM sc??? ?WHERE o=002)--网上实现代码:SELECT s.sname,s.sage FROM student s,scWHERE s.sno=sc.sno AND o=002
--3. 使用标准SQL嵌套语句查询不选修课程编号为’002’的学员姓名和年龄SELECT sname,sage FROM studentWHERE sno not in (?SELECT sno FROM sc WHERE cno=002)--网上实现代码:--一样
--4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和年龄--网上实现代码有误,修改后代码:SELECT sname,sage FROM studentWHERE sno IN(??? SELECT sc.sno FROM sc RIGHT JOIN course c ON o=o??? GROUP BY sno HAVING COUNT(*)=(select DISTINCT count(*) from course))??? --or??? --GROUP BY sno HAVING COUNT(*)=(select? count(DISTINCT cname) from course))
--5.查询选修了课程的学员人数SELECT count(distinct sno) FROM sc--网上实现代码:一样
--6. 查询选修课程超过2门的学员学号和年龄SELECT sname,sage FROM studentWHERE sno in(?SELECT sno FROM sc GROUP BY sno HAVING count(cno)2)--网上实现代码:SELECT sname,sage FROM studentWHERE sno IN(?SELECT sno FROM sc GROUP BY sno HAVING count(DISTINCT [cno])2)
?
--7. 找出没有选修过“李明”老师讲授课程的所有学生姓名SELECT sno,sname FROM student WHERE sno not in?(SELECT sno FROM sc WHERE cno =(??SELECT cno FROM course WHERE cteacher=lida))--我的另一种方法SELECT sno,sname FROM student s WHERE not exists?(SELECT * FROM sc WHERE sc.sno=s.sno and o =(SELECT cno FROM course WHERE cteacher=lida))--网上实现代码:SELECT s.sno,s.sname FROM student s WHERE NOT EXISTS(??? SELECT * FROM sc,course c WHERE o=o AND c.cteacher=lida AND sc.sno=s.sno)
--8. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩SELECT s.sno,s.sname,AVG(cast(sc.grade as int)) FROM sc,student s?WHERE s.sno in (select sc.sno from sc where cast(sc.gra
文档评论(0)