SQL中表的连接类型-左连接、右连接、内连接

两个表

student表,information表

左连接

student表 left join information表

SELECT * FROM student s
LEFT JOIN information f on s.SNO = f.SNO;

  • SNO='202201',s有2条,f有1条,结果集有2条数据;
  • SNO='202202',s有3条,f有2条,结果集有6条数据;(2×3=6)
  • SNO='202203',s有1条,f有1条,结果集有1条数据;
  • SNO='202204',s有1条,f有2条,结果集有2条数据;
  • SNO='202205',s有1条,f无,结果集f的列为null
  • SNO='202206',s无,f有的数据,结果集无

 注意黑色加粗的字即它们的区别;

右连接

student表 right join information表

SELECT * FROM student s
RIGHT JOIN information f on s.SNO = f.SNO;

  • SNO='202201',s有2条,f有1条,结果集有2条数据;
  • SNO='202202',s有3条,f有2条,结果集有6条数据;(2×3=6)
  • SNO='202203',s有1条,f有1条,结果集有1条数据;
  • SNO='202204',s有1条,f有2条,结果集有2条数据;
  • SNO='202205',s有1条,f无,结果集无
  • SNO='202206',s无,f有的数据,结果集s的列为null

内连接

student表 inner join information表

SELECT * FROM student s
inner JOIN information f on s.SNO = f.SNO;

  • SNO='202201',s有2条,f有1条,结果集有2条数据;
  • SNO='202202',s有3条,f有2条,结果集有6条数据;(2×3=6)
  • SNO='202203',s有1条,f有1条,结果集有1条数据;
  • SNO='202204',s有1条,f有2条,结果集有2条数据;
  • SNO='202205',s有1条,f无,结果集无;
  • SNO='202206',s无,f有1条,结果集无;
SELECT * FROM student s,information f 
WHERE s.SNO = f.SNO

where语句也可以实现内连接的功能,但是where语句还可以加上其他条件,内连接只能自己再写一个where条件语句。

 

End.

posted @ 2022-04-12 16:11  youreyebows  阅读(250)  评论(0编辑  收藏  举报