SQL语句练习

SQL语句练习

数据库结构和数据:


--学生表
create table student(
 sno char(10) primary key,
 sname char(10),
 sage int,
 sgender char(4),
 sdept char(10),
 check (sgender in ('男','女')),
 check (sage between 1 and 100)
);

--课程表
create table course(
 cno char(10),
 cname char(20),
 cpno char(10),
 ccredit int,
 primary key(cno)
);

--分数表
create table sc(
 sno char(10),
 cno char(10),
 grade int,
 primary key(sno,cno),
 foreign key(sno) references student(sno),
 foreign key(cno) references course(cno),
 check (grade between 0 and 100)
);

insert into student values('98001','李鹏','20','男','cs');
insert into student values('98002','刘晨','19','女','cs');
insert into student values('98003','王敏','18','女','ma');
insert into student values('98004','张立','19','男','is');

insert into course values('1','数据库','5','4');
insert into course values('2','数学',NULL,'2');
insert into course values('3','信息系统','1','4');
insert into course values('4','操作系统','6','3');
insert into course values('5','数据结构','7','4');
insert into course values('6','数据处理',NULL,'2');
insert into course values('7','PASCAI语言','6','4');

insert into sc values('98001','1','92');
insert into sc values('98001','2','85');
insert into sc values('98001','3','88');
insert into sc values('98002','1','90');
insert into sc values('98002','2','80');

题目:

  1. 查询1号课程没有考试成绩的学生学号
  2. 查询2号课程成绩在90分以上或60分以下的学生学号
  3. 查询课程名以“数据”两个字开头的所有课程的课程号和课程名
  4. 查询每个学生所有课程的平均成绩,输出学生学号、平均成绩
  5. 查询每门课程的选修人数,输出课程号、选修人数
  6. 查询选修 7号课程的学生的学号、姓名、性别
  7. 查询选修7号课程学生的平均年龄
  8. 查询由30名以上学生选修的课程号
  9. 查询至今没有考试不及格的学生学号
  10. 找出选修课程号为 C的学生学号与成绩
  11. 找出选修课程号为C的学生学号与姓名
  12. 找出选修课程名为 Maths 的学生学号与姓名
  13. 找出选修课程号为C2或C的学生学号
  14. 找出选修课程号为C2和C的学生学号
  15. 找出不学C2课程的学生姓名和年龄
  16. 找出选修了数据库课程的所有学生姓名
  17. 找出数据库课程不及格的女生姓名
  18. 找出各门课程的平均成绩,输出课程名和平均成绩
  19. 找出各个学生的平均成绩,输出学生姓名和平均成绩
  20. 找出至少有30个学生选修的课程名
  21. 找出选修了不少于3门课程的学生姓名
  22. 找出各门课程的成绩均不低于90分的学生姓名
  23. 找出数据库课程成绩不低于该门课程平均分的学生姓名
  24. 找出各个系科男女学生的平均年龄和人数
  25. 找出计算机系(cs)课程平均分最高的学生学号和姓名

发表评论