8-3 SQL语句编写常考题
Posted WinvenChang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8-3 SQL语句编写常考题相关的知识,希望对你有一定的参考价值。
一、考点聚焦
SQL
语句以考察各种常用连接为重点
1.内连接(INNER JOIN
):两个表都存在匹配时,才会返回匹配行
2.外连接(LEFT/RIGHT JOIN
):返回一个表的行,即使另一个没有匹配
3.全连接(FULL JOIN
):只要某一个表存在匹配就返回
二、内连接
INNER JOIN
1.将左表和右表能够关联起来的数据连接后返回
2.类似于求两个表的“交集”
3.select * from A inner join B on a.id=b.id;
示例表
用A
,B
这两个表作为示例
先来编写内连接(inner join
):
select A.id as a_id, B.id as b_id, A.val as a_val, B.val as b_val from A inner join B on A.id = B.id;
运行结果:
三、外连接
外连接包含左连接和右连接
1.左连接返回左表中所有记录,即使右表中没有匹配的记录
2.右连接返回右表中所有记录,即使左表中没有匹配的记录
3.没有匹配的字段会设置成 NULL
mysql
中使用 left join
和right join
实现
左连接结果:
select A.id as a_id, B.id as b_id, A.val as a_val, B.val as b_val from A left join B on A.id = B.id;
右连接结果:
select A.id as a_id, B.id as b_id, A.val as a_val, B.val as b_val from A right join B on A.id = B.id;
四、全连接
FULL OUTER JOIN
1.只要某一个表存在匹配,就返回行
2.类似于求两个表的"并集"
3.但是Mysql
不支持,可以用left join
、union
、right join
联合使用模拟
select A.id as a_id, B.id as b_id, A.val as a_val, B.val as b_val from A left join B on A.id = B.id union select A.id as a_id, B.id as b_id, A.val as a_val, B.val as b_val from A right join B on A.id = B.id;
以上是关于8-3 SQL语句编写常考题的主要内容,如果未能解决你的问题,请参考以下文章