Sql 数据库 join 连接

sql里面有两个连接一个是union,另一个就是join 
他们两个的区别:
union 连接的是行 是一行一行的连  而 join 连接的是列(字段)    (他们俩的区别暂时就就知道这点)

join连接的使用的前提:
1.必须要有至少一个表(一个表可以用自连接)
2.必须要有相关联的列(字段),主键外键啥的。

join 分为 内连接(inner join)、外连接(left outer join 和 right outer join)、交叉连接(cross join)和自连接。

首先, 内连接 inner join  这个用的比较多 
作用就是 当要查询的多个列在不同的表中时,为了进行跨表查询而使用的

用法:

select SName,SAge,CName from Student  inner join Class on Class.classid=Student.sclassid;

这个查询里面SName和 SAge是Student表里的,CName是Class表里的  这里面是根据Class里的classid(主键)和Student表里的sclassid关联的
如果要是有等多个表,嫌总是写表名麻烦可以给各个表设个名,如下

select SName,SAge,CName from Student as S1  inner join Class as C1 on C1.classid=S1.sclassid;

然后,外连接 left outer join 和 right outer join  这个用的也比较多 主要是用在找一个表在另一个表中没有的数据

left outer join 就是左表记录都显示出来对右表能找到数据的对应匹配数据,对右表找不到的匹配记录为null

right outer join 同做很相似 就不多说了,你懂得。。

用法:
select SName,SAge,english from Student  left outer join Score on Score.studentid=Student.sid where sid  not in studentid

这个查询就是查询没有考试的学生。。

交叉连接 Cross join
这个吧,,应该用的不多 我也不会用呃 他得到数据就连接的两个表数据的积

自连接
这个用的也不多,所以直接写下用法就不介绍了
用法:

select * from Student inner join (select SName,SAge,SID from Student where SAge>10) as TS1 onStudent.Sid=TS1.sid

转载于:https://www.cnblogs.com/gongth-12/archive/2012/11/07/2791650.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值