MySQL实战6 分页查询和联合查询

MySQL实战 目录

1.分页查询

  数据记录条数过多的时候,需要分页查询
    语法:
     SELECT 查询字段
     FROM 表名
     WHERE .... 等等前面学过的所有语法
     
     limit offset(开始记录索引,是从0开始的),size(要取出的条数);
案例:查询前5条员工数据
    SELECT *FROM employees LIMIT 0,5;
注意:如果从第一条开始,这个0可以省略:SELECT * FROM employees LIMIT 5;
案例:查询第11条到第25条
    SELECT *FROM employees LIMIT 10,15;
案例:查询有奖金且工资最高的前10名的员工信息
    SELECT * FROM employees WHERE commission_pct IS NOT NULL
                             ORDER BY salary DESC LIMIT 10;
分页查询的特点:
 1.limit 语句是位置上要放在比order by 语句的还后面,
 其次中sql执行过程中,limit也是最后去执行的语句。
 2.通用的分页查询写法(page:总页数,size:每页显示的记录条数)
  SELECT 查询列表
    FROM 表名
    LIMIT (page-1)*size,size;
    size=10
    page 和 size  记录范围 和 起始记录索引值 limit
     1       10   1-10条      0           0,10
     2       10   11-20条     0           10,10
     3       10   21-30条     0           20,10
     4       10   31-40条     0           30,10

2.联合查询

     关键字union,作用就是将多余查询语句的结果合并成一个结果集;
案例:查询部门编号大于100或名字中含有a字符的员工信息
         SELECT *FROM employees WHERE department_id >100 OR last_name LIKE '%a%';
     
         SELECT *FROM employees WHERE department_id >100 
         UNION
         SELECT *FROM employees WHERE last_name LIKE '%a%';
案例:查询学校所有男老师和男学生的信息
         SELECT tno 编号 ,tname 名字,tsex 性别 ,tbirthday 出生日期 FROM teachers WHERE tsex='男'
         UNION
         SELECT sno,sname,ssex,sbirthday FROM students WHERE ssex='男';
联合查询的特点:
  1. 联合查询的两个子查询的查询列表要一致
  2. 要求联合查询的子查询的查询列表顺序要在内容上保持一致
  3. 使用’union’联合默认会自动去重,如果不想去重可以将’union’改为’union all’
    原文作者:香沙小熊
    原文地址: https://www.jianshu.com/p/7ecc036d1c52
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞