《SQL习题练习1zxx.docx》由会员分享,可在线阅读,更多相关《SQL习题练习1zxx.docx(7页珍藏版)》请在三一办公上搜索。
1、SQL习题练习1zxx常用sql server 语句 A 设有教学数据库的三个基本表:学生表Student (Sno,Sname,Sage,Ssex, Sdept), 课程表Course(Cno,Cname,Teacher), 选课表 SC(Sno,Cno,Grade) , 用SQL语言实现下列功能: 1建立学生表Student,其中姓名属性值是唯一的,性别属性不能为空。 2查询所有年龄在22岁以上的女学生姓名及其年龄。 3查询选修了C3号课程的学生的学号及其成绩,查询结果按分数的降序排列。 4查询学习1号课程的学生最高分数、最低分及平均成绩。 5查询与张军在同一个系学习的学生信息。 6将化学
2、工程系全体学生的成绩提高5%。 7查询选修成绩大于60分的学生的学号及姓名。 8删除选修高等数学所有学生的成绩记录。 9求年龄大于男同学平均年龄的女学生姓名和年龄。 10. 统计每门课程的选修人数大于20的课程,并输出课程号和选修人数。 11检索姓刘的所有学生的姓名和年龄。 12. 统计每个学生选修课程的情况,并输出学号和选修课程数目。 13. 把选修MATHS课不及格的成绩全改为空值。 14删除王力选课记录。 15. 在sc中,把英语课成绩提高10% A 1建立学生表Student,其中姓名属性值是唯一的,性别属性不能为空。 CREATETABLE Student (Sno CHAR(5)
3、Primary key, Sname CHAR(20) UNIQUE,Ssex CHAR(2) NOT NULL, Sage INT, Sdept CHAR(15); 2查询所有年龄在22岁以上的女学生姓名及其年龄。 SELECT Sname, Sage from student WHERE Sage 20 and Ssex=F 3查询选修了C3号课程的学生的学号及其成绩,查询结果按分数的降序排列。 SELECT Sno, Grade FROM SC WHERE Cno=C3 ORDER BY Grade DESC 4查询学习1号课程的学生最高分数、最低分、平均成绩。 SELECT MAX(G
4、rade), MIN(Grade),AVG(Grade) FROM SC WHERE Cno=1 5查询与“张军”在同一个系学习的学生信息。 SELECT Sno, Sname, Sdept FROM Student WHERE Sdept IN (SELECT Sdept FROM Student WHERE Sname=张大山) 6将化学工程系全体学生的成绩提高5%。 UPDATE SC SET Grade= Grade*1.1 WHERE Sno in ( SELECT Sno FROM Student WHERE Sdept = 化学工程系) 7查询选修成绩大于60分的学生的学号及姓名
5、。 SELECT Sno, Sname from student,sc WHERE student.sno=sc.sno and grade60 8删除选修高等数学所有学生的成绩记录。 DELETE FROM SC WHERE Cno in ( SELECT Cno FROM Course WHERE Cname = 高等数学) 9求年龄大于男同学平均年龄的女学生姓名和年龄。 SELECT Sname , Sage from Student Where Ssex=女 and Sage(Select Avg(Sage) from Student Where Ssex=男) 10. 统计每门课程的
6、选修人数大于20的课程,并输出课程号和选修人数。 SELECT Cno,Count(Sno) from SC Group by Cno Having Count(*)15 11检索姓刘的所有学生的姓名和年龄。 SELECT Sname,Sage FROM S WHERE Sname LIKE 刘% 12. 统计每个学生选修课程的情况,并输出学号和选修课程数目。 SELECT Sno,Count(Cno) from SC Group by Sno 13. 把选修MATHS课不及格的成绩全改为空值。 update sc set grade=null where grade80 6将选修王军老师所授
7、课程所有学生的成绩提高5% UPDATE SC SET Grade= Grade*1.05 WHERE Cno in ( SELECT Cno FROM Course WHERE Cname = 王军) 7检索学号比王小军同学小的学生姓名 SELECT Sname from Student Where Sno(Select sno from Student where Sname=王小军) 8删除外语系所有学生的成绩记录。 DELETE FROM SC WHERE Sno in ( SELECT Sno FROM Student WHERE Sdept = 外语系) 9求年龄小于女同学平均年龄
8、的男学生姓名和年龄。 SELECT Sname , Sage from Student Where Ssex=男 and Sage50 11在sc中,把高等数学课成绩提高10% UPDATE SC SET Grade=1.1*Grade WHERE cno in (SELETE cno FROM course WHERE cname = 高等数学); 11检索姓刘的所有学生的姓名和年龄。 SELECT Sname,Sage FROM S WHERE Sname LIKE 刘% 12. 统计每个学生选修课程的情况,并输出学号和选修课程数目。 SELECT Sno,Count(Cno) from
9、SC Group by Sno 13. 把选修大学物理课不及格的成绩全改为空值。 update sc set grade=null where grade60 and cno in (select cno from c where cname=大学物理课) 14删除张红选课记录。 DELETE FROM SC WHERE sno in (SELETE sno FROM Student WHERE sname=张红); 15. 检索姓王的所有学生的姓名、年龄和选课成绩。 SELECT Sname,Sage,grade FROM Student, SC WHERE Sname LIKE 刘% and Student.sno=sc.sno