sql一些总结

1. 连接查询:执行过程:采用表扫描的方法,在表1中找到第一个元组,然后从头开始扫描表2,查找到满足条件的元组即进行串接并存入结果表中;再继续扫描表2,依次类推,直到表2末尾。再从表1中取第二个元组,重复上述的操作,直到表1中的元组全部处理完毕

  在子查询中不允许使用order by子句

  嵌套查询的实现一般是从里到外,即先进行子查询,再把其结果用于父查询作为条件

2.having 与 where的区别

where 决定哪些元组被选择参加运算,作用于关系中的元组

having 决定哪些分组符合要求,作用于分组

3.带有exists的相关子查询 

  exists表示存在量词,带有exists的子查询不返回任何记录的数据,只返回逻辑值“True” 或“False”

  相关子查询执行过程:先在外层查询中取student表的第一个元组(记录),用该记录的相关的属性值(在内层where子句中给定的)处理内层查询,若外层的where子句返回‘TRUE’值,则此元组送入结果的表中。然后再取下一个元组;重复上述过程直到外层表的记录全部遍历一次为止。

  exists + 子查询用来判断该子查询是否返回元组

  当子查询的结果集非空时,exists 为“True”;当子查询的结果集为空时,exists为“False”。

  not exists :若子查询结果为空,返回“TRUE”值,否则返回“FALSE”

 

转载于:https://www.cnblogs.com/methinkjj/p/6637932.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值