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号课程没有考试成绩的学生学号
- 查询2号课程成绩在90分以上或60分以下的学生学号
- 查询课程名以“数据”两个字开头的所有课程的课程号和课程名
- 查询每个学生所有课程的平均成绩,输出学生学号、平均成绩
- 查询每门课程的选修人数,输出课程号、选修人数
- 查询选修 7号课程的学生的学号、姓名、性别
- 查询选修7号课程学生的平均年龄
- 查询由30名以上学生选修的课程号
- 查询至今没有考试不及格的学生学号
- 找出选修课程号为 C的学生学号与成绩
- 找出选修课程号为C的学生学号与姓名
- 找出选修课程名为 Maths 的学生学号与姓名
- 找出选修课程号为C2或C的学生学号
- 找出选修课程号为C2和C的学生学号
- 找出不学C2课程的学生姓名和年龄
- 找出选修了数据库课程的所有学生姓名
- 找出数据库课程不及格的女生姓名
- 找出各门课程的平均成绩,输出课程名和平均成绩
- 找出各个学生的平均成绩,输出学生姓名和平均成绩
- 找出至少有30个学生选修的课程名
- 找出选修了不少于3门课程的学生姓名
- 找出各门课程的成绩均不低于90分的学生姓名
- 找出数据库课程成绩不低于该门课程平均分的学生姓名
- 找出各个系科男女学生的平均年龄和人数
- 找出计算机系(cs)课程平均分最高的学生学号和姓名