欢迎来到天天文库
浏览记录
ID:57650386
大小:55.00 KB
页数:5页
时间:2020-08-30
《SQL作业参考答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1、设有以下三个关系:学生关系:student(sno,sname,dep,age,sex)选课关系:sc(sno,cno,grade)课程关系:course(cno,cname,score)1)建数据库,在数据库中建立以上三个关系。要求:学生关系中:sno为主键,sname不允许为空,age默认值18,sex取值范围’男’、’女’、默认为’男’。课程关系中:cno为主键,cname不为空,在cname上建立唯一索引。选课关系中:sno、cno组合为主键,grade允许为空,sno为外键(参照学生关系的sno,级联删除、级联修改),cno为外键(参照课程关系的cn
2、o,限制删除、限制修改)。2)试用SQL的查询语句表示下列查询。(1)检索学分score等于4的所有课程的课程号和课程名。selectcno,cnamefromcoursewherescore=4;(2)检索年龄在20和23岁之间的学生的学号与姓名。selectsno,snamefromstudentwhereagebetween20and23;(3)检索Wang同学不学的课程的课程号。selectcnofromcoursewherecnonotin(selectcnofromsc,studentwheresc.sno=student.snoandstudent.
3、sname='Wang');(4)检索所有姓李的学生情况。select*fromstudentwheresnamelike'李%';(5)检索所有学生情况及其选课情况。(可以用f1键查看左外联接)selectstudent.*,sc.*fromstudentleftouterjoinsconstudent.sno=sc.sno;(6)检索所有选修了课程的学生情况和选课情况。selectstudent.*,sc.*fromstudent,scwherestudent.sno=sc.sno;(7)检索至少选修两门课程的学生学号和姓名。只能用嵌套查询!selectsno
4、,snamefromstudentwheresnoin(selectsnofromscgroupbysnohavingcount(*)>=2);注意:如果用如下的联接查询实现,会出现错误提示列'student.sname'在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在GROUPBY子句中。selectstudent.sno,snamefromstudent,scwherestudent.sno=sc.snogroupbystudent.snohavingcount(*)>=2;(1)将所有成绩为空值的学生成绩置为0。updatescsetgrade=0
5、wheregradeisnull;注意:判断是否为null时不能用=null(2)删除课程名为“DB”的课程和所有成绩的元组。deletefromscwherecno=(selectcnofromcoursewherecname='DB');deletefromcoursewherecname='DB';(3)平均成绩大于60分的课程的课程号和平均成绩存入关系G1(C#,AVG_G)中。表G1不存在:selectcnoasc#,avg(grade)asAVG_GintoG1fromscgroupbycnohavingavg(grade)>60;表G1存在:inse
6、rtintoG1selectcno,avg(grade)fromscgroupbycnohavingavg(grade)>60;(4)把课程名为“OS”的课程的学生成绩提高5%。updatescsetgrade=grade*(1+0.05)wherecno=(selectcnofromcoursewherecname='OS');(1)统计有学生选修的课程门数。selectcount(distinctcno)as已选修课程数fromsc;(2)查询选修了课程名为C2课程的学生的平均年龄。selectavg(sage)as平均年龄fromstudent,sc,cou
7、rsewherestudent.sno=sc.snoandsc.cno=course.cnoandcname='C2';或:selectavg(sage)as平均年龄fromstudentwheresnoin(selectsnofromsc,coursewheresc.cno=course.cnoandcname='C2');或:selectavg(sage)as平均年龄fromstudentwheresnoin(selectsnofromscwherecnoin(selectcnofromcoursewherecname='C2'));14)查询选修人数超过15
8、的课程的课
此文档下载收益归作者所有