大家好,本次编程就列出几道我们学完数据库后考试中最基础的试题

 数据库如图所示

 

查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩

select s.Sname, s.Sid,AVG(score) from SC,Student s

where  s.Sid=SC.Sid

group by  s.Sid,s.Sname

having  avg(score)>=60;

 

查询在 SC 表存在成绩的学生信息

 

select * from student  s,sc,teacher t, course

where  sc.sid=s.sid

and course.cid=sc.cid

and course.tid=t.tid

and score>0

查询学过「张三」老师授课的同学的信息

select * from student  s,sc,teacher t, course

where sc.sid=s.sid

AND course.cid=sc.cid

AND course.tid=t.tid

AND  t.tname='张三';

 

查询没有学全所有课程的学生的信息

select s.sname,cname,score from student s,course,sc

where sc.sid=s.sid

AND sc.cid=course.cid;

 

 

查询没学过"张三"老师讲授的任一门课程的学生姓名

select * from student s

where s.sid not in

(select sc.sid from sc ,course,teacher

where  sc.cid=course.cid

AND teacher.tid=course.tid AND teacher.tname='张三');

 

查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩

select Sid,avg(score) from SC
where Sid in(
 select sid from SC 
 where score<60
 group by sid
 having COUNT(sid)>2
) group by sid;

 

 

 检索" 01 "课程分数小于 60,按分数降序排列的学生信息

 

select sid,score
from SC
where cid='01' and score<60 order by score desc;

 

查询成绩表中各科成绩前三名的信息以及排名

select * from ( 
select *,ROW_NUMBER()
over(partition by cid order by score desc) r from sc 
)s
where s.r<=3 

 

 

修改CourseCname字段类型为nvarchar,长度为100

 alter table Course alter column  Cname nvarchar(100);

使用SQL语言复制student表结构和数据,复制的表名为student_copy

select * into student_copy from student ; 

 

 

 

 

 

更多推荐

sql数据库考试试题