SQL多种连接查询的使用

连接查询:将多张表(》=2)进行记录的连接(按照某个指定的条件进行数据拼接),最终结果是:记录数有可能变化,字段数一定会增加(至少两张表的合并)

连接查询意义:在用户查看数据的时候,需要显示是数据来自多张表。

连接查询的分类 4类:内连接、外连接、自然连接、交叉连接。

连接查询:join ,使用方式:左表 A join 右表B

交叉连接 cross join  保证连接结构的完整性(不加条件时无任何意义)。

从一张表中循环取出每一条记录,每条记录都去另外一张表进行匹配,匹配一定成功(无条件匹配),而连接本身字数数就会增加(保留),结果笛卡尔积

语法:from 左表 A cross join 右表B  ==from 左表A,右表B

如果 cross join 添加 on 条件后,与inner join  on相同

内连接inner  join ,从左表中取出每一条数据,去右表中与所有的记录进行匹配,匹配必须是某个条件在左表中与右表中相同,最终才会保留结果。

语法:左表 A inner  join  右表 B on A.字段1=B.字段1  on表示 连接条件:条件字段就是代表相同的业务含义(如student中 c_id(班级id)和class 表中 的id)

where 也可替换on ,只是效率太低,每个都去匹配一下。

select * from student  A  inner join class  B  on A.c_id=B.id

外连接:outer join 。以某个表为主,取出里面的所以记录,然后每条与另外的一张表进行连接,不管匹配成功与否,都会保留结果;能匹配上,正确保留,不能匹配,其他表的字段都置为NULL

外连接分为两种:

    left join :左外连接(左连接),以左表A为主,

    A left join B on A.字段=B.字段

    right join:右外连接(右连接),以右表B为主

    A right join B on A.字段=B.字段

自然连接:natural join,自动匹配连接条件,系统默认以字段名字作为匹配模式(同名字段作为条件,多个同名字段同时都作为同名条件),连接后会合并同名字段。(本身没有任意义,基本不用!)

分类:

自然内连接  :A natural join B

自然外连接 :A natural left join B 

内连接/外连接  模拟自然连接:使用同名字段,合并字段

A left/right/inner join B using(同名字段名)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值