MySQL学习笔记(5)---子查询、union和limit

子查询

1、什么是子查询?

select语句中嵌套select语句,被嵌套的select语句称为子查询。

2、子查询都可以出现在哪里呢?

    select
        ..(select).
    from
        ..(select).
    where
        ..(select).

例:select ename,sal from emp where sal > (select min(sal) from emp);
select 
            t.*, s.grade
        from
            (select job,avg(sal) as avgsal from emp group by job) t
        join
            salgrade s
        on
            t.avgsal between s.losal and s.hisal;

union合并查询结果集

    select ename,job from emp where job = 'MANAGER'
    union
    select ename,job from emp where job = 'SALESMAN';
上面结果等同于select ename,job from emp where job = 'MANAGER' or job = 'SALESMAN';
union的效率要高一些。对于表连接来说,每连接一次新表,则匹配的次数满足笛卡尔积,成倍的翻。。 但是union可以减少匹配的次数。在减少匹配次数的情况下, 还可以完成两个结果集的拼接。

union在使用的时候有注意事项吗?
union在进行结果集合并的时候,要求两个结果集的列数相同。

limit分页符

limit作用:将查询结果集的一部分取出来。通常使用在分页查询当中。
limit怎么用呢
        完整用法:limit startIndex, length
        startIndex是起始下标,length是长度。
        起始下标从0开始。
         缺省用法:limit 5; 这是取前5.
  select ename,sal from emp order by sal desc limit 0,5;

关于DQL语句的大总结!!!!!!!!!!!!!!!!
    select 
        ...
    from
        ...
    where
        ...
    group by
        ...
    having
        ...
    order by
        ...
    limit
        ...
    
    执行顺序?
        1.from
        2.where
        3.group by
        4.having
        5.select
        6.order by
        7.limit..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值