数据库数据增删改查练习题(1)——学生选课数据库

数据库数据增删改查练习题(1)——学生选课数据库

基本数据表

S(SNO,SNAME,AGE,SEX)学生

C(CNO,CNAME,TEACHER)课程

SC(SNO,CNO,GRADE)选课

练习题

试用SQL表达式实现下列查询:

1)查询“程军”老师所授课程的课程号(CNO)和课程名(CNAME)。

2)查询年龄在23-25之间,王姓女学生的姓名(SNAME)及年龄(AGE)

3)查询“李强”同学选修的成绩在85分以上的课程号(CNO)及成绩(GRADE)。

4)查询选修课程号为’k1’的学生姓名(SNAME)及授课教师姓名(TEACHER)。

5)查询由全部学生选修的课程的课程名及授课教师。

6)统计每门课的选课人数,结果显示(课程名,人数)–注意汉字

7)查询平均成绩不及格的学生的学号、姓名,以及不及格的课程门数。

8)将学号为“s1”的学生,选修了“k3”号课程,成绩为80的信息增加到数据库;

9)删除数据库中“张三”老师所有的课程信息。

10)将选修了“数据库”课程的所有学生的成绩提高10分。

实现SQL语句

// 查询“程军”老师所授课程的课程号(CNO)和课程名(CNAME)。
(1)select CNO,CNAME from C where TEACHER='程军';

// 查询年龄在23-25之间,王姓女学生的姓名(SNAME)及年龄(AGE)
(2)select SNAME,AGE from S where AGE between 23 and 25 and SNAME like '王' and SEX='女';

// 查询“李强”同学选修的成绩在85分以上的课程号(CNO)及成绩(GRADE)。
(3)select CNO,GRADE from SCwhere GRADE>85 and SNO in(select SNO from S where SNAME='李强');//方法一:嵌套查询
   select CNO,GRADE from S,SC where S.SNO=SC.SNO and grade>85 and SNAME='李强';//方法二:连接查询
   
// 查询选修课程号为’k1’的学生姓名(SNAME)及授课教师姓名(TEACHER)。
(4)select SNAME,TEACHER from S,C,SC where S.SNO=SC.SNO and SC.CNO=C.CNO and C.CNO='k1';

// 查询由全部学生选修的课程的课程名及授课教师。
(5)select CNAME,TEACHER from C where not exists (select * from S where not exists (select * from SC where SNO=SC.SNO and CNO=C.CNO));

// 统计每门课的选课人数,结果显示(课程名,人数)--注意汉字
(6)select CNAME 课程名,COUNT(SNO) 人数 frmo SC,C where SC.CNO=C.CNO group by C.CNO;

// 查询平均成绩不及格的学生的学号、姓名,以及不及格的课程门数。
(7)select S.SNO,S.SNAME,COUNT(CNO) from S,SC where S.SNO=SC.SNO group by SC.SNO HAVING AVG(GRADE)<60;

//将学号为“s1”的学生,选修了“k3”号课程,成绩为80的信息增加到数据库;
(8)insert into SC values('s1','k3','80');

// 删除数据库中“张三”老师所有的课程信息。
(9)delete from C where TEACHER='张三';//删除课程表记录
   delete fromSC where CNO in (select CNO from C where TEACHER='张三');//删除选课表记录
   
// 将选修了“数据库”课程的所有学生的成绩提高10分。
(10)update SC setGRADE=GRADE+10 where CNO in (select CNO fromC where CNAME='数据库');


你可能感兴趣的:(数据库SQL语句的使用)