三个表表结构:
students(sid,studentID,sname,sclass,ssex,semail,saddress)
courseid(courseid,cname)
score(scoreid,courseid,studentid,score)
单表查询复习:
select [top 数字或百分比] 字段列表
from 表 where 条件 order by 字段列表 asc/desc 练习三个:
--查询成绩表中课程号为2,成绩在70~99之间的记录,按成绩升序排序
--查询学生表中地址是(南京、北京、东京、西安)的记录 --查询成绩表课程号为3的前3名成绩的记录按成绩降序排列 select 字段列表,聚合函数--这里的字段列表一定要与group by 的字段列表一致
from 表 group by 字段列表 having 条件 --通过成绩表查出课程号及该门课平均成绩
--查询每个同学每门课的平均成绩 --查询成绩表中参加课程号为2的学生人数(distinct的使用,去除重考同学的计数) --查询成绩表中课程平均成绩超过80分的学号、课程号、平均成绩记录(存在补考成绩) 函数的使用复习(len,left,right)格式:len(字段),left(字段,从左边取的位数),right(字段,从右边取的位数)
--给学生表的身份证号cardid建立一个约束字符必须是15或者是18位 --根据学生表的学号查询入学年份、姓名、班级、两位数的座号记录(如学号为20100123的这四项记录) 内连接查询复习
select A.字段列表,B.字段列表 from 表1 as A inner join 表2 as B on 两个表的主外键相等的条件 另一种查询方法
select A.字段列表,B.字段列表 from 表1 as A, 表2 as B where 连接条件 练习:
--查询学生姓名、班级、课程号、成绩记录
--要查询学生姓名、班级、课程名、成绩所有记录 左外连接 主要考虑左表到底用两个表的哪个 --查询所有同学成绩(姓名、班级、成绩)没有参加考试的同学成绩以空值表示 --查询所有课程成绩情况 三个表连接查询
--要查询学生姓名、班级、课程名、成绩所有记录
|
|
来自: 教育电力 > 《SQL 2005》