- 9
- 0
- 约2.76万字
- 约 6页
- 2016-10-06 发布于贵州
- 举报
数据库期末复习资(sql语句,触发器,存储过程)
Sql语言
1、查询“00001”课程比“00002”课程成绩高的所有学生的学号
select a.StuID as 学号
from (select StuID,StuScores from Scores where CourseId=00001) a ,
(select StuID,StuScores from Scores where CourseId=00002) b
where a.StuScoresb.StuScores and a.StuID=b.StuID
select T1.StuID 学号 --使用自表连接
from (select StuID,StuScores from Scores where CourseId = 00001) T1
inner join (select StuID,StuScores from Scores where CourseId = 00002) T2
on T1.StuID = T2.StuID
where T1.StuScoresT2.StuScores
--2、查询平均成绩大于60分的学号和平均成绩
select StuID as 学号,avg(StuScores) as 成绩
from Scores
group by StuID
having avg(StuScores)60
--3、查询所有同学的学号,姓名,选课数,总成绩
select Students.StuID as 学号,Students.StuName as 姓名,count(Scores.CourseId) as 选课总数,sum(StuScores) as 总分
from Students left join Scores on Students.StuID=Scores.StuID
group by Students.StuID,StuName
--4、查询姓“易”的老师个数
select COUNT(distinct(Teacher)) as 个数
from Course
where Teacher like 易%
--5、查询没学过“易文龙”老师课的同学的学号,姓名
select Students.StuID as 学号,Students.StuName as 姓名
from Students
where StuID not in (select distinct(Scores.StuID) from Scores,Course where Scores.CourseId=Course.CourseId and Teacher=易文龙)
--6、查询学过“00001”并且也学过编号“00002”课程的同学的学号,姓名
select a.StuID as 学号,StuName as 姓名
from Students a,Scores b,(select * from Scores where courseId = 00001) c
where b.CourseId=00002 and a.StuID = b.StuID and a.StuID = c.StuID
--7、查询学过“易文龙”老师所教的所有课程同学的学号,姓名
select StuID as 学号,StuName as 姓名 from Students a
where not Exists
(select * from Course b where Teacher = 易文龙
and not Exists
(select * from Scores c where c.StuID=a.StuID and c.CourseId=b.CourseId)
)
--8、查询课程编号“00002”的成绩比课程编号“00001”课程低的所有同学的学号,姓名
select a.StuID as 学号,a.StuName as 姓名
from (select Scores.StuID,StuScores,Students.StuName
from Scores inner join Students
on Scores.StuID = Students.StuID and CourseId=00001) a ,
(select StuID,StuScores from Scores where CourseId=00002) b
where a.StuScoresb.StuScores and a.StuID=b.StuID
--9、查询所有课程成绩小于60分的同学学号和姓名
select StuID as 学号,avg(StuScores) as 平均分
from Sc
原创力文档

文档评论(0)