SQL进阶语法的多表操作

AS别名

多张表联合操作,如果表多,字段名长,不方便阅读。这里我们可以使用  as  关键字来对字段名设置别名。

as也可以省略,看个人喜好,在这里我还是支持把 as 写上,这样我们在面对复杂的SQL语句时有很好的可读性。

接下来的多表操作将都使用别名,不难,一看便懂。

 下面是两张表,

表的链接

1、内连接(又称显示连接)

 inner  join

如果表中至少有一个匹配,则返回结果

查询列出购买了商品的用户,以及他们买了什么

2、左连接

left  join

即使右表中没有匹配,也从左表返回所有的结果

 

查询列出所有用户,即使他们没有买东西

 3、右连接

right  join

即使左表中没有匹配,也从右表返回所有的结果

查询列出所有商品,即使该商品没有被用户购买

4、全连接

full  join   

注:mysql 不支持full  join,所以我们使用mysql支持的方式来实现full  join的功能。也就是join + union(不懂union先看下面的union讲解)

join + union

其实就是内连接 + 左连接 + 右连接

查询列出哪些用户购买了哪些商品,哪些用户没有购买,哪些商品没被用户购买

附:union的功能

union:并和两个或多个select语句的结果集合,自动去重

union all:与union相同,但是允许重复

注意事项:使用union,必须保证所有select后面查询的字段名一致。数量,类型,顺序都必须是一样的。

5、制作备份文件

select  into

注:mysql也不支持select  into这种方法来创建备份表,我们可以用另一种方法 ↓

create  table  备份表名  (select  字段名  from  表名)

创建了userinfo表的备份表,内容一致

原文地址:https://www.cnblogs.com/eyesCentre/p/10698596.html