时间:2021-07-01 10:21:17 帮助过:2人阅读
二、高级查询:
--连接查询 select * from Info,Nation -- 形成笛卡尔积 select * from Info,Nation where Nation.Code=Info.Nation --join on 内连接 select * from Info join Nation on Info.Nation = Nation.Code --查哪位学生的哪一门课考了多少分 select student.sname,course.cname,score.degree from student join score on score.sno=student.sno join course on course.cno = score.cno --右连接,右边表必须显示全,如果在左边表没有与之对应的信息,则补空值 select * from Info right join Nation on Info.Nation=Nation.Code --左连接,左边表必须显示全,如果在右边表没有与之对应的信息,则补空值 select * from Info left join Nation on Info.Nation=Nation.Code --全连接,左右两边的表都显示完全 select * from Info full join Nation on Info.Nation=Nation.Code --联合查询,对于查出的两个或多个结构相同的表联合显示 select Code,Name from Info union select InfoCode,Name from Family --------子查询------------------ --子查询的结果当做父查询的条件 select * from Info --无关子查询,子查询执行是独立的,和父查询是没有关系的(没有用到父查询的东西) select * from Info where year(Birthday)=( select YEAR(Birthday) from info where Code=‘p005‘) --相关子查询 select * from teacher --求计算机系和电子工程系不同职称的老师信息 select * from teacher t1 where depart=‘计算机系‘ and not exists( select * from teacher t2 where depart=‘电子工程系‘ and t1.prof = t2.prof) union select * from teacher t1 where depart=‘电子工程系‘ and not exists( select * from teacher t2 where depart=‘计算机系‘ and t1.prof = t2.prof ) --查询除了每门课最高分之外的其他学生信息。 select * from score select * from score where degree not in(select MAX(degree) from score group by cno)--错误 select * from score s1 where degree not in( select MAX(degree) from score s2 group by cno having s1.cno = s2.cno ) --select * from score where degree not in(86,75) --分页 select * from Car select top 5 * from Car -- 前5条数据,第一页 select top 5 * from Car where Code not in( select top 5 Code from Car ) -- 第二页的数据 select top 5 * from Car where Code not in( select top 10 Code from Car ) --第三页的数据 select top 5 * from Car where Code not in( select top (5*2) Code from Car ) select ceiling(COUNT(*)/5) from Car --求总页数 select * from Car where 条件 limit 跳过几条数据,取几条数据 --mysql里面的分页
数据库基本查询与高级查询
标签: