数据库语句之表连接

  • student表

11

 

  • 课程表

课程表

  • 成绩表

成绩表

  • 交叉连接

两个表的广义笛卡尔积——没有连接条件的多表查询

select stdname,elename  from Student,Elective

或select stdname,elename  from Student cross join Elective

5

  • 内连接

默认连接——返回交叉连接结果中所有符合连接条件的行

select a.StdName,b.EleName
from Student a,Elective b,Student_Elevtive c
where a.StdId=c.StdId and b.EleId=c.EleId

select a.StdName,c.EleName
from Student a join Student_Elevtive b on a.StdId=b.StdId
join Elective c on c.EleId=b.EleId

1

缺点:

若存在没有选修任何选修课的学生,Student_Elevtive表中不存在这些学生,无查询结果

  • 外连接

两个表的左右连接

select a.StdName,b.EleId
from Student a left join Student_Elevtive b on a.StdId=b.StdId

6

多于两个表的左右连接

select a.StdName,c.EleName
from Student a left join Student_Elevtive b on a.StdId=b.StdId
left join Elective c on c.EleId=b.EleId

7

 

  • 全连接

select ISNULL(a.cusid,b.cusid),a.cusname,b.goodsname,b.quantity
from Customer a full join sale b on a.cusid=b.cusid
order by 1

9

isnull()函数:若第一个函数非空,返回第一个,若为空,返回第二个

  • 自连接

select a.StdId,a.StdName,b.StdName
from Student a left join student b on a.SideId=b.StdId

10

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值