博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
15-07-17 数据库--高级查询
阅读量:5247 次
发布时间:2019-06-14

本文共 1774 字,大约阅读时间需要 5 分钟。

高级查询

--连接查询

select * from 表1,表2 -- 形成笛卡尔积
select * from 表1,表2 where 表1.主键=表2.外键 --主外键位置可以互换

--join on 内连接

select * from 表1 join 外键 on 表1.主键 = 表2.外键

--查哪位学生的哪一门课考了多少分

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 表1 right join 表2 on 表1.主键 = 表2.外键
--左连接,左边表必须显示全,如果在右边表没有与之对应的信息,则补空值
select * from 表1 left join 表2 on 表1.主键 = 表2.外键
--全连接,左右两边的表都显示完全
select * from 表1 full join 表2 on 表1.主键 = 表2.外键

--联合查询,对于查出的两个或多个结构相同的表联合显示,用union

select 列1,列2 from 表1
union
select 列1,列2 from 表2

--------子查询------------------

--子查询的结果当做父查询的条件
select * from Info
--无关子查询,子查询执行是独立的,和父查询是没有关系的(没有用到父查询的东西)
select * from Info where year(Birthday)=(select YEAR(Birthday) from info where Code='p005') --查询和学号‘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 s1 where degree not in(

select MAX(degree) from score s2 group by cno having s1.cno = s2.cno
)

分页
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里面的分页

 

转载于:https://www.cnblogs.com/jia520110270/p/4665076.html

你可能感兴趣的文章
BootScrap
查看>>
Java实现二分查找
查看>>
UIImage 和 iOS 图片压缩UIImage / UIImageVIew
查看>>
php7 新特性整理
查看>>
RabbitMQ、Redis、Memcache、SQLAlchemy
查看>>
03 线程池
查看>>
手机验证码执行流程
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
jquery的contains方法
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
桥接模式-Bridge(Java实现)
查看>>
303. Range Sum Query - Immutable
查看>>
【★】浅谈计算机与随机数
查看>>
C# Dynamic通用反序列化Json类型并遍历属性比较
查看>>
前台freemark获取后台的值
查看>>
Leetcode: Unique Binary Search Trees II
查看>>
C++ FFLIB 之FFDB: 使用 Mysql&Sqlite 实现CRUD
查看>>
Spring-hibernate整合
查看>>
c++ map
查看>>