几个数据库概念的区别

1.where和having

WHERE 子句搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。所以where后面是不可跟聚会函数( 一种函数,它对一组行中的某个列执行计算,并返回单个值如count()  sum())。


2.exist和in

in 是一个集合运算符,前边要有一个列名。

exists是一个存在判断,如果后面的查询中有结果,则exists为真,否则为假,前边不能有任何列名。


3.内连接和外连接

内连接:把两个表中数据对应的数据查出来
外连接:以某个表为基础把对应数据查出来(全连接是以多个表为基础)

student表
no name 
1   a   
2   b
3   c
4   d 

grade表
no grade
1    90
2    98
3    95

内连接 inner join(查找条件中对应的数据,no4没有数据不列出来)
语法:select * from student inner join grade on student.no = grade.no
结果
student.no name grade.no grade
1  a 1  90
2  b 2  98
3  c 3  95

左连接(左表中所有数据,右表中对应数据)
语法:select * from student left join grade on student.no = grade.no
结果:
student.no name grade.no grade
1                  a         1                90
2                  b         2                98
3                  c         3                95
4                  d

右连接(右表中所有数据,左表中对应数据)
语法:select * from student right join grade on student.no = grade.no 
结果:
student.no name grade.no grade
1                  a          1               90
2                  b          2               98
3                  c          3                95

全连接
语法:select * from student full join grade on student.no = grade.no
结果:
no name grade
1   a          90
2   b         98
3   c         95
4   d 
1   a         90
2   b         98
3   c         95

注:access 中不能直接使用full join ,需要使用union all 将左连接和右连接合并后才可以。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值