MySQL之分页查询and联合查询

8. 分页查询

应用场景:

当要显示的数据,一页显示不全,需要分步提交sql请求。

语法:

select 查询列表 ⑦

from 表1 ①

[ join_type join 表2 ②

on 连接条件 ③

where 筛选条件 ④

group by 分组字段 ⑤

having 分组后筛选 ⑥

order by 排序字段 ] ⑧

limit [offset], size; ⑨

offset: 要显示的条目起始索引(索引是从0开始的)

size: 要显示的条目个数

语句后面的小圈包起来的数字,就是这条sql语句执行的顺序

特点:

  1. limit语句放在查询语句的最后面,执行也是最后

  2. 公式:要显示的页数page,每页的条目数size

    select * from employees
    limit (page - 1)*size,size;
    

案例一:有奖金的员工信息,并且工资较高的前十名显示出来

select * 
from employees
where commission_pct IS NOT NULL 
order by salary desc
limit 10;   # 只写一个数,代表是10条数据,默认索引从0开始

9. 联合查询

union 联合 合并:将多条查询语句的结果合并成一个结果

语法:

查询语句1

union

查询语句2

union

查询语句n;

引入案例:查询部门编号大于90或邮箱包含a的员工信息

select * 
from employees
where department_id > 90 or email like "%a%";
# 上边是使用之前的方法 下边是union
select *  from employees  where department_id > 90
union
select *  from employees  where email like "%a%";

应用场景:

要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时(列数一样,两个表查询到的两个结果,是竖着连接组合成一个表的)

特点:

  1. 要求多条查询语句的查询列数是一致的
  2. 要求多条查询语句的查询的每一列的类型和顺序最好是一致
  3. union关键字默认去重(两个表进行联合时,会将两个表中都有的数据,只留下一条),如果使用union all关键字可以包含重复项

少年易老学难成,一寸光阴不可轻

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值