查看: 118|回复: 0

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

[复制链接]
发表于 2020-2-15 19:56:24 | 显示全部楼层 |阅读模式
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。



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 的表关联模型如下:


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

原文链接:https://blog.csdn.net/sun_xiao_kai/article/details/88075501
如有侵权,请立即联系我

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?用户注册

x

相关技术服务需求,请联系管理员和客服QQ:2753533861或QQ:619920289
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

帖子推荐:
客服咨询

QQ:2753533861

服务时间 9:00-22:00

快速回复 返回顶部 返回列表