MySQL学习-数据查询语言(DQL)六之分页查询和联合查询(u

2018-12-02  本文已影响0人  Cehae

九丶分页查询

9-1丶分页查询基本概念
应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求

语法:
    select 查询列表
    from 表
    【join type】 join 表2
    on 连接条件
    where 筛选条件
    group by 分组字段
    having 分组后的筛选
    order by 排序的字段】
    limit 【offset,】size;
    
    offset要显示条目的起始索引(起始索引从0开始)
    size 要显示的条目个数

特点:
    ①limit语句放在查询语句的最后
    ②公式
    要显示的页数 page,每页的条目数size
    
    select 查询列表
    from 表
    limit (page-1)*size,size;
    
    size=10
    page  
    1   0
    2   10
    3   20
9-2丶分页查询案例
案例1:查询前五条员工信息
SELECT * FROM  employees LIMIT 0,5;
SELECT * FROM  employees LIMIT 5;
案例2:查询第11条——第25条
SELECT * FROM  employees LIMIT 10,15;
案例3:有奖金的员工信息,并且工资较高的前10名显示出来
SELECT 
    * 
FROM
    employees 
WHERE commission_pct IS NOT NULL 
ORDER BY salary DESC 
LIMIT 10 ;

十丶联合查询

10-1丶联合查询基本概念
union 联合 合并:将多条查询语句的结果合并成一个结果

语法:
查询语句1
union
查询语句2
union
...

应用场景:
要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时

特点:★
1、要求多条查询语句的查询列数是一致的!
2、要求多条查询语句的查询的每一列的类型和顺序最好一致
3、union关键字默认去重,如果使用union all 可以包含重复项
10-2丶联合查询案例
#引入的案例1:查询部门编号>90或邮箱包含a的员工信息
SELECT * FROM employees WHERE email LIKE '%a%' OR department_id>90;;

SELECT * FROM employees  WHERE email LIKE '%a%'
UNION
SELECT * FROM employees  WHERE department_id>90;


#案例2:查询中国用户中男性的信息以及外国用户中年男性的用户信息
SELECT id,cname FROM t_ca WHERE csex='男'
UNION ALL
SELECT t_id,tname FROM t_ua WHERE tGender='male';

UNION结果

结果
上一篇下一篇

猜你喜欢

热点阅读