【mysql】查询语句select之关键字union,limit,分页

union

union的作用

合并查询结果集

union的用法

案例:查询工作岗位是MANAGER和SALESMAN的员工?

第一种写法
select ename,job from emp where job = ' MANAGER' or job = ' SALESMAN' ; 
第二种写法
select ename,job from emp where job in ( 'MANAGER' , ' SALESMAN') ;
第三种写法
select ename,job from emp where job ='manager'
union
select ename,job from emp where job ='salesman';
  • union的效率要高一些。对于表连接来说,每连接一次新表, 则匹配的次数满足笛卡尔数学积,成倍的翻。
    但是union可以减少匹配的次数。在减少匹配次数的情况下, 还可以完成两个结果集的拼接。

a连接b连接c
a 10条记录
b 10条记录
C 10条记录
匹配次数是: 1000
a连接b一个结果: 10 * 10 --> 100次
b连接c一个结果: 10 * 10 --> 100次
使用union的话是:
100次+ 100次= 200次。

union使时的注意事项

select ename, job from emp where job = 'MANAGER'
union
select ename from emp where job ='SALESMAN' ;

//错误的:union在进行结果集合并的时候,要求两个结果集的列数相同,
也就是字段数相同。

select ename, job from emp where job = ' MANAGER'
union
select ename,sal from emp where job = ' SALESMAN' ;
// MYSQL可以,oracle语法严格 ,不可以,报错。
要求:结果集合并时列和列的数据类型也相同

limit

limit作用:

将查询结果集的一部分取出来。通常使用在分页查询当中。
百度默认:一页显示10条记录。
分页的作用是为了提高用户的体验,因为一次全部都查出来,用户体验差.
可以一页一页翻页看

limit的用法

完整用法: limit startIndex, length
startIndex是起始下标,length是长度。
起始下标从0开始。
缺省用法: limit 5;这是取前5.

按照薪资降序,取出排名在前5名的员工?
select
ename, sal
from
emp
order by
sal desc
limit 5; //取前5
	
或者
select
ename , sal
from
emp
order by
sal desc
limit 0,5;//从下标0开始,也就是第一个元素开始,取5条记录

取出工资排名在[3-5]名的员工?
select
ename,sal
from
emp
order by
sal desc
limit
2,3;
//2表示起始位置从下标2开始,就是第三条记录,3表示长度

分页

每页显示pageSize条记录
第pageNo页: limit (pageNo - 1) * pagesize, pagesize

public static void main (String[] args) {
//用户提交过来-一个页码,以及每页显示的记录条数
	int pageNo = 5; · //第5页
	int pagesize = 10; //每页显示10条
	int startIndex =(pageNo - 1) * pageSize; //startindex每页的下标的起始位置
String sql = "select . . .limit”+ startIndex + ",”+ pageSize ; 
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值