MySQL高级查询

MySQL高级查询

嵌套查询(子查询)

  1. 定义:把内层的查询结果作为外层的查询条件
  2. 语法格式:
        select … from 表名 where 条件(select …);
        
    子查询有返回结果:exists 子查询结果为True
    子查询无返回结果:exists 子查询结果为FALSE,外层查询不执行

删除表

  1. DROP TABLE IF EXISTS temp;

多表查询

  1. 笛卡儿积
        select 字段名 列表 from 表名列表;
  2. 多表查询
        select 字段名 列表 from 表名列表 where 条件;

连接查询

  1. 内连接(结果同多表查询,显示匹配到的记录)

    语法格式:
          select 字段名 from 表1 inner join 表2 on 条件 inner join 表3 on 条件;

  2. 左外连接:以 左表 为主显示查询结果

    语法格式:
          select 字段名 from 表1 left join 表2 on 条件 left join 表3 on 条件;

  3. 右外连接:用法同左连接,以右表为主显示查询结果

    语法格式:
          select 字段名 from 表1 right join 表2 on 条件 right join 表3 on 条件

分组查询

  1. 语法:SELECT …… FROM <表名> WHERE …… GROUP BY ……

In和Exists的区别

  1. In:
    主查询的条件字段和子查询返回字段必须一致
    先执行子查询,将返回子查询的结果给主查询,再执行主查询

  2. exists:
    主查询不需要出现条件字段
    先执行主查询,将主查询的表的字段传给子查询,如果在子查询找到相应结果,
    返回true,将该结果显示在结果集中。否则返回false

联合查询

  1. UNION
    并集,所有的内容都查询,重复的显示一次
select * from emp where deptno = 20
union 
select * from emp where sal > 2000
  1. UNION ALL
    并集,所有的内容都显示,包括重复的

自然连接

寻找俩表中字段名称相等,数据类型相同的字段进行连 接,会自动去重重复列(如果有多个字段符合要求,那么他们会被作为自然连接的条件)

--自然连接(等值连接,表的字段名称必须相同,去除重复行)
select * from emp NATURAL JOIN dept;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值