mysql基础总结 连接查询

连接查询
---------------------------------------------------------
将多张表进行记录的连接;

四类连接查询:内连接 ,外连接,自然连接,交叉连接

交叉连接:
从一张表中循环取出每一条记录去另一张表的每一条记录进行匹配,最终形成的表叫笛卡尔积。
左表 cross join 右表;

内连接

——————————————————————————————————————————
左表的每一条记录与右表的所有记录进行匹配:当左表的某个条件与右表的某个条件相同时,结果才会保留。
左表 [inner] join 右表 on 左表.字段=右表.字段;//on表示连接条件
当on后面没有条件,结果会形成笛卡尔积;
where可以代替on,但是使用on效率更高;

字段别名,表别名

select s.* ,c.name as c_name ,
c.room from my_student as s inner join my_class as c on s.id=c.id;

外连接

———————————————————————————————————————————
以某张表为主,取出里面的记录,然后每条记录与另一张表进行连接;
不管能不能匹配上条件,最终都会保留:能匹配,能正确保留;不匹配,其副表的字段为空;
 
外连接分为两种:
有主表
   left join:左外连接,以左表为主
   right join:右外连接,以右表为主

语法:select * from a left join b on 左表.字段=右表.字段;
      select * from b right join a on 左表.字段=右表.字段;
以上两种效果相同,都以a为主表


自然连接:

——————————————————————————————————————————
nature join:自动匹配连接条件:系统一字段的名字作为匹配模式
(同名字段就作为条件,多个同名字段就都作为条件)

自然连接:分为自动内连接和自动外连接。

自然内连接
select * from 表名1 nature join 表名2;//连接后合并同名字段

自然外连接
select * from 表名1 nature left join 表名2;


外连接,内连接可以模拟自然连接
例:  select * from 表名1  left join 表名2 using(字段);using()合并字段

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值