MySQL 第七章

第七章   SQL高级子查询 

SQL语句最强大的地方就是子查询。子查询是一个嵌套在select、insert、update或delete语句或其他子查询中的查询。

基本子查询分为3类:

1. 通过in、any、all修饰的比较运算符引入的列表上操作的子查询;
2. 通过未修改的比较运算符引入且必须返回单个值的子查询;
3. 通过exists的存在测试的子查询。

子查询几乎可以放在任何SQL语句中,任何允许使用表达式的地方都可以使用子查询。

一、简单子查询

1. 在select语句使用子查询

   where条件是另外一个查询语句时,外面的查询称为父查询,括号中嵌入的查询称为子查询。
   
   SQL执行时,先执行子查询,后执行父查询。

   注:将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个。

   子查询还可以将多表的数据组合在一起,从而替换连接查询。

2. (1)update(更新)
   
    (2) delete(删除)

       子查询主要是放在delect语句的where条件中,作为删除的条件。

    (3) insert(插入)语句中使用子查询
   
      insertinto  表名 (字段列表)select 字段列表 from 表名

二、高级子查询

1. in和not in的子查询
   使用 in 后的子查询返回值可以多于一个。
2. exists和not exists的子查询
3. all、any/some的子查询

   all要求子查询必须返回且只能返回一个字段。

语法:
   表达式或字段比较运算符 all(子查询)

   表达式或字段比较运算符 any/some(子查询)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值