这里是以王巧梅作业为主批改后的结果,做的很不错,红色字体表示该同学尚未完成的部分,请其他同学对照学习 select 字段列表 from 表 where 条件 order by 字段 ASC/DESC --查询成绩表中课程号为2,成绩在70~99之间的记录,按成绩升序排序(10%)(10) select score,courseid from score where courseid=2 and score >70 and score<99 order by score asc
select saddress --按要求其他字段也应该列出,否则查询的记录无意义 from students where saddress in(‘南京’, ‘北京’, ‘东京’, ‘西安' ) select top 3 * from score where courseid=3 order by score desc from 表 group by字段列表 having 条件 --通过成绩表查出课程号及该门课平均成绩 from score group by courseid select studentid,courseid,avg(score) As 平均成绩(4%)(3) from score group by studentid,courseid --查询成绩表中参加课程号为2的学生人数(distinct的使用,去除重考同学的计数)(1%) select
courseid,count(distinct studentid) from students where courseid=2 group by courseid --查询成绩表中课程平均成绩超80分的学号、课程号、平均成绩记录(有补考成绩)(1%) select studentid,courseid,avg(score) As 平均成绩 from score group by studentid,courseid having avg(score)>80 --给学生表的身份证号cardid建立一个约束字符必须是15或者是18位(3%) len(cardid)=15 or
len(cardid)=18 --根据学生表的学号查询入学年份、姓名、班级记录、两位数的座号(3%) Select left(studentid,4)
as 入学年份 ,sname,sclass From studnets 多表查询 内连接查询 select A.字段列表,B.字段列表 from 表1 as A inner join 表2 as B on 两个表的主外键相等的条件 select A.字段列表,B.字段列表 from 表1 as A, 表2 as B where 连接条件 select
A.Sname,A.Sclass,B.courseid,B.score from students as A inner join score as B on
A.Studentid=B.Studentid --要查询学生姓名、班级、课程名、成绩所有记录(10%) SELECT a.SName AS 姓名,a.Sclass
As 班级, c.CName AS 课程,b.Score AS 成绩 FROM Students AS a INNER JOIN Score AS b ON
(a.StudentID = b.StudentID) INNER JOIN 左外连接 主要考虑左表到底用两个表的哪个 --查询所有同学成绩(姓名、班级、成绩)没有参加考试的同学成绩以空值表示(6%) select
A.Sname,A.Sclass,B.courseid,B.score from students as A left outer join score as
B on
A.Studentid=B.Studentid |
|
来自: 教育电力 > 《SQL 2005》