高级子查询(Sql Server 数据库)

高级子查询

一.什么是子查询?

所谓子查询,是指包含在一个INSERT、DELETE、UPDATE、SELECT命令中的SELECT查询。

也可以理解为增删改查命令中嵌套着查询命令。

二.子查询在WHERE语句中的一般用法:

SELECT … FROM 表1 WHERE 字段1 >(子查询),外面的查询称为父查询,括号中嵌入的查询称为子查询 ,UPDATE、INSERT、DELETE一起使用,语法类似于SELECT语句

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

三.用子查询替换表连接

inner join /  left join / right join / full join

首先要让两个或两个以上的表有关系,没有关系也要创造关系?(没有关系的表用连接查询干嘛?设计就有问题)没有关联的就用cross join,不需要on关键字的。不过于没有关联的表做关联这个方法绝大部分情况下是不合理的,cross join会产生大量数据,10000条数据就会产生1亿。这样对性能来说是毁灭性的

 

一般来说,表连接都可以用子查询替换,但有的子查询却不能用表连接替换,子查询比较灵活、方便,常作为增删改查的筛选条件,适合于操纵一个表的数据表连接更适合于查看多表的数据

四.EXISTS子查询

如果子查询的结果非空,即记录条数1条以上,则EXISTS (子查询)将返回真(true),否则返回假(false) ,EXISTS也可以作为WHERE 语句的子查询,但一般都能用IN子查询替换

通过在子查询中使用EXISTS子句,可以对子查询中的行是否存在进行检查

IN子查询后面可跟随返回多条记录的子查询,用于检测某列的值是否在某个范围

如果大家想浏览我的下一篇文章,请留言

如果觉得我的文章写的好的,请点个赞,或者加关注

版权声明:此文章属于原创,不准随意转载:https://blog.csdn.net/LYQ2332826438

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

银色亡灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值