MySQL -----子查询

MySQL -----子查询

1.什么是子查询?
子查询可以理解为:在一个sql语句A(insert、select、update等)中嵌入一个子查询语句B,作为执行的条件或查询的数据源(代替from 后的数据表 ),那么B就是子查询语句,它是一条完整的select语句,就能独立完成。sql语句中先执行子查询中的语句在执行外层的语句
2子查询分类:
按照查询的功能可以分为标量子查询,列子查询,行子查询和表子查询
按照查询的位置可以分为where和from子查询。其中,标量子查询,列子查询,行子查询都属于where子查询,而表子
查询属于from子查询。
1)标量子查询:返回的数据为一行一列

where 条件判断(=|<>)

2)列子查询:返回的数据为一列多行

where 条件判断(in | not in )

3)行子查询:返回的数据为一行多列

where 指定字段1,指定字段2…=(select 字段1,字段2 …from 数据源 [where] …)
<>,<=>表示不等于,等于

4)表子查询:返回数据为一个二维数据表,数据可以为一行列,一行多列,多行一列,多列一行。多行多列。

select 字段列表 from (select 语句)as 别名where/having.order by/group by/limit

3.子查询关键字:
1)带exists关键字的子查询:exists存在,返回的结果为0或1两个值。其中,1表示成立,0表示不成立

where exists(子查询语句)

2)带any的关键字的子查询
any关键字表示给定的判断条件,其中只要符合any的子查询中任意一个就返回1,否者返回0.

where 表达式 比较运算符 any(子查询语句)
例子:
select name from goods where id<> any (select distinct id from good where price>500)
意思:表示筛选goods表中的name返回不满足good表中不重复的price大于500的数据

3)带all的关键字子查询:判断条件是否全部符合条件,符合就返回1,否者就返回0、

where 表达式 比较运算符 all(子查询语句)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值