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;

示例表
AB这两个表作为示例

先来编写内连接(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 joinright 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 joinunionright 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语句编写常考题的主要内容,如果未能解决你的问题,请参考以下文章

8-1 Mysql基础常考题

8-1 Mysql基础常考题

sql注入相关考题

Python知识点——面试常考题

7-3 网络编程常考题

7-3 网络编程常考题