一、union

将查询结果集相加
  1. 找出工作岗位是SALESMANManagerde的员工
  2. Select * from emp where job ='salesman' or job = 'manager';
  3. Select * from emp where job in('salesman','manager');
  4. 使用union(表示将查询结果进行相加)
  5. Select * from emp where job = 'salesman'
  6. Union
  7. Select * from emp where job = 'manager'
  8. 一般用在两张毫无相关的表想要一起输出的话 就用union
  9. 第一个查询列的数量必须和第二个查询列的数量一定要一致
  10. Select ename,sal from emp
  11. Union
  12. Select dname from dept
  13. (报错,因为第一个查询的列是两列,而第二个是一列)

二、limit
作用:取结果集中的部分数据
**Limit startIndex, length**
**startIndex**表示起始位置,从0开始 0表示第一条数据
**length**表示取几个

  1. 取出工资前五名
  2. select * from emp order by sal desc limit 0,5;
  3. Select * from emp order by sal desc limit 5;
  4. 上面一样,不写0默认有一个零
  5. 取出工资第4到第9的员工
  6. Select * from emp order by sal desc limit 3,6;
  7. 注意:后面那个表示取几个,并不是下标


:::info

limit永远是最后执行的一步

:::

通用的标准分页sql
  • 每页显示pageSize条记录
    • 第pageNo页:(pageNo-1) * pageSize,pageSize
      • 页码-1 乘以每页要显示的条数,条数
      • 公式 limit (10-1)*10,10
  1. Select 5
  2. ….
  3. From 1
  4. Where 2
  5. Group by 3
  6. Having 4
  7. Order by 6
  8. Limit 7