MySQL-笔记03

select(第五步)
   ...
  from(第一步)
  ...
  where(第二步)
  ...
  group by (第三步)
  ...
  having(第四步)
  ...
  order by(第六步,排序永远最后)
  ....
  limit(第七步,取段)
  ...

目录

7.distinct 把查询结果去除重复数据

8.连接查询

9.子查询

10.union合并查询结果集

11.limit   


7.distinct 把查询结果去除重复数据

7.1原表数据不会被修改,需要一个关键字distinct
7.2distinc只能出现在所有字段的前方
7.3去除所有字段的内容都相同的数据的

8.连接查询

   8.1多张表连接起来查询数据被称为连接查询
   8.2根据表连接的方式分类:
           内连接:
                  等值连接
                  非等值连接
                  自连接
           外连接:
                   左外连接
                   右外连接
   8.3没有条件限制的情况下,连接的结果是一个表的所有数据和一张表的每行数据进行匹配
   8.7等值连接
       select
           ...
        from
          表名
        join
          表名
       on
          表连接的条件,相等的条件
   8.8非等值连接
       select
          ...
       from
          表名
       join
          表名
       on
          连接条件
  8.9内连接之自连接:一张表看成两张表,完全能够匹配上on条件的查询出来
  8.10外连接:会保留没有匹配上条件的数据,外连接产生了主次关系(右外连接:把右边的表看为主表,保留主表的数据,左连接类似)
  8.11外连接的查询条数一定>=内连接的查询结果条数
  8.12 三张表,四张表怎么连接?(连接完的结果和下一个表进行连接)
     语法:
      select
          ...
      from
          a
      join 
           b
      on
        a和b的连接条件
     join 
           c
      on
        a和c的连接条件
     join 
           d
      on
        a和d的连接条件

9.子查询


    9.1什么是子查询?
    select语句中嵌套select语句,被嵌套的select语句被称为子查询
    9.2子查询可以出现在哪里?
    select
        ..(select)
    from
        ..(select)
    where
        ..(select)
   9.3where子句中的子查询
   查出比最低工资高的员工姓名和工资
   select
   ename,sal 
   from 
   emp 
   where 
   sal>(select min(sal) from emp);

   9.4from子句中的子查询

   from后面的子查询,可以将子查询的查询结果当做一张临时表
   找出每个岗位的平均薪资等级?
   第一步:找出每个岗位的平均工资
   select
   job,avg(sal)
   from
   emp
   group by
   job;t表
   第二步:克服心理障碍,把上面的查询结果当作一张真实存在的表
   select * 
   from salgrade;s表
  第三步:将两表进行连接
   select
   t.*,s.grade
   from
   (select job,avg(sal) as avgsal from emp goup by job) t
   where
   t.avgsal between s.losal and s.hisal;
   9.5select后面出现的子查询
   对于select后面的子查询来说,这个子查询一次只能返回一条结果

10.union合并查询结果集

10.1 union的效率高于表连接,union可以减少匹配次数
10.2 union在进行结果合并的时候,要求两个结果集的列数相同
  

11.limit   

   11.1 limit是把查询结果集的一部分取出来,通常使用在分页查询中
   11.2 limit 5;取该表中的前五条记录
           limit 起始下标1,长度2;取1-(2-1+1)的数据,下标1表示第二条记录
   11.3 limit在order by之后执行!!
   11.4 取出工资排在5-9的员工:limit 4,5;
   11.5 分页  
        每页显示pagesize条记录
        第pageno页:limit (pageno-1)*pagesize,pagesize

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值