MySQL之表、列别名及各种JOIN连接详解

  1. MySQL
    在SQL中,合理的别名可以让SQL更容易以及可读性更高。别名使用as来表示,可以分为表别名和列别名,别名应该是先定义后使用才对,所以首先要了解sql的执行顺序
    (1) from
    (2) on
    (3) join
    (4) where
    (5) group by(开始可以使用select的别名,后面的也行)
    (6) avg,sum…
    (7) having
    (8) select
    (9) distinct
    (10) order by
    注意:from是最先执行的,select是在having之后运行的
    这里有两张表
    在这里插入图片描述            在这里插入图片描述
    1.1 列别名
    SQL语句select id,name as colname from students;,结果为
    在这里插入图片描述
    在这里可以看到我们给 name 添加了一个别名,输出后原表的 name 字段变为现在的别名字段 colname;
    1.2 表别名
    SQL语句select stu.name,sc.score from students as stu,score as sc where stu.id=sc.id;,结果为
    在这里插入图片描述
    我们给表students起个别名stu,给score起个别名sc。

  2. JOIN连接
    2.1 inner join
    以上面两表为例,下面连接上面的两张表,匹配id相同的信息
    SQL语句为select a.id,a.name,a.subject,b.score from students a inner join score b on a.id=b.id;(on/where),结果是
    在这里插入图片描述
    INNER JOIN 的表关联模型如下:
    在这里插入图片描述
    绿色部分即为两张表关联的部分。
    2.2 left join
    LEFT JOIN 与 INNER JOIN 有所不同,LEFT JOIN 会读取左侧数据表的全部数据,即使右侧表中无对应数据。我们将students表作为左侧表,score为右侧表
    SQL语句select a.id,a.name,a.subject,b.score from students a left join score b on a.id=b.id;结果为
    在这里插入图片描述
    因为两张表的id均为3,所以结果看起来和inner join效果一样,其实不然,这里重点将用法!!!
    LEFT JOIN 的表关联模型如下:

在这里插入图片描述

上图中绿色的部分,为两表的左关联结果。

2.3 cross join
请参考cross join
2.4 union自连接
请参考菜鸟教程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值