分享

单表查询与多表查询

 教育电力 2011-04-05
 
三个表表结构:
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 连接条件
 
练习:
--查询学生姓名、班级、课程号、成绩记录
--要查询学生姓名、班级、课程名、成绩所有记录

左外连接
主要考虑左表到底用两个表的哪个
--查询所有同学成绩(姓名、班级、成绩)没有参加考试的同学成绩以空值表示
--查询所有课程成绩情况
 
三个表连接查询
--要查询学生姓名、班级、课程名、成绩所有记录
 
 
 
 
 
 
 
 
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 全屏 打印 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多