1. 从教学库中查询每个学生的学号、选课门数和平时成绩,写出sql语句
这个应该涉及到三个表吧
select 学生表.学号,count(课程.科目) as 选课门数,成绩表.平时成绩 from 学生表,课程表,成绩表 where 学生表.学号=课程表.学号 and 课程表.课程号=成绩表.课程号
2. sql语句编写存储过程,根据输入的学生学号,返回此学生的最高成绩和最低成绩。
createprocGetStudentScore
@studentIdint
As
selectmax(score)asMaxScore,min(score)=@studentId
3. sql语句,从条件判断这里开始: where 学生成绩.学号=学生选课.学号;
这样的语句应该是有三个表,需要从三个表(tables)里找数据。一个表是“学生成绩”,一个是“学生选课” 另一个是“课程”。 在这两个表里,都有一个项(column/field)叫做:学号。
关于“.": 表.项 是sql语言用来表示特别的项。因为两个表里都有学号,所以要用“学生成绩.学号” 和“学生选课.学号”来表示到底指的是哪一个表里的学号。
关于”=“:因为Where语句后是条件,"=" 是来表示相等条件的。
”where 学生成绩.学号=学生选课.学号;“, 翻译成人类语言就是”当学生成绩里的学号 等于 学生选课里的学号; ”。
希望对你有帮助。
4. SQL:查询每门课程的课程名、选课学生姓名及其学号,选课人数
我的学生数据库跟你的差不多,我就用我的这些表给你做了个
selectc.Cno,s.Sname,s.Sno,选课人数fromCoursec
leftjoinSConc.cno=sc.cno
leftjoinstudentsons.Sno=SC.Sno
leftjoin(selectc.cno,COUNT(s.Sno)选课人数from
CoursecleftjoinSConc.cno=sc.cno
leftjoinstudentsons.Sno=SC.Sno
groupbyc.Cno)asTONT.Cno=c.Cno
5. 用sql语句:将选课在五门以上的学生学号,姓名按平均分降序排序 请问怎么写。。。
SELECT B.StuName,A.StuID
,AVG(Score) AS AvgScore
FROM dbo.Course AS A
LEFT JOIN dbo.Stu_Info AS B
ON A.StuID = B.StuID
GROUP BY StuID
HAVING COUNT(*) > 5
ORDER BY AvgScore DESC
6. 在sql中,怎样的语句得到选课学生的学号。(注意去掉重复的学号)
select distinct 学号 from 选课表
或
select 学号 from 选课表 group by 学号
7. sql在cj表中按照学号分组,统计选课数大于4的每个学生的学号及选课数,要求按照选课数升序排序。
select 学号, count(课程号)
from cj
group by 学号
having count(课程号) > 4
8. 用SQL语句查询选修课程名称中有数据库课程的学生的学号
select * from 学生表 where 学号 in(select 学号 from 选修课表 where 课程='数据库')
思路大概就是这样
9. sql:查询所有学生的学号、姓名、入学成绩、选课门数和平均分。结果要求显示如下
SQL语句如下:
select student.sno 学号,sname 姓名,sgrade 入学成绩,count(cno)选课门数,avg(grade)平均分
from student,score
where student.sno=score.sno
group by student.sno,sname,sgrade;
其中sno、sname、sgrade、cno、grade分别为:学号、姓名、入学成绩、课程号、成绩。以上SQL语句在Microsoft SQL Server 2005下测试通过。
10. 数据库sql查询同时选修了选修课1和选修课2的学生学号
select Sno from sc where Cno in('课1','课2') group by Sno having count(*)=2