诛仙3焚香超完美加点:查询复习作业参考答案
来源:百度文库 编辑:九乡新闻网 时间:2024/04/20 07:54:41
这里是以王巧梅作业为主批改后的结果,做的很不错,红色字体表示该同学尚未完成的部分,请其他同学对照学习
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%)
selectcourseid,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 orlen(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 连接条件
selectA.Sname,A.Sclass,B.courseid,B.score
from students as A
inner join score as B
onA.Studentid=B.Studentid
--要查询学生姓名、班级、课程名、成绩所有记录(10%)
SELECT
a.SName AS 姓名,a.SclassAs 班级, c.CName AS 课程,b.Score AS 成绩
FROM Students AS a
INNER JOIN Score AS b ON(a.StudentID = b.StudentID)
INNER JOIN
左外连接
主要考虑左表到底用两个表的哪个
--查询所有同学成绩(姓名、班级、成绩)没有参加考试的同学成绩以空值表示(6%)
selectA.Sname,A.Sclass,B.courseid,B.score
from students as A
left outer join score asB
onA.Studentid=B.Studentid