SQL复习跨表查询知识点

推荐网站

还是W3C了,讲的清晰明了,可以多看看


1.联合连接

用UNION关键字可以合并多表查询SELECT语句的结果,会自动去掉重复项

联合连接则是UNION JOIN,输出全连接和内连接的差异行,主流数据库不支持,不多说。

2.自然连接

关键字natural join,自然连接无法指定连接条件,匹配的结果是找到字段相同而且值相同的

SQL语句格式:SELECT * FROM studenttable natural join TEACHERTABLE

比如两表student和teacher,存在一个同名字段class,那么就会匹配class这个字段中,值相同的哪些数据。

例如,假设存在一定的数据,class都是六年级一班的,输出的结果就是两个表中class都是六年级一班的项目,会去除重复项。

如果没有同名字段那就不行了。

3.等值连接/不等值连接

SELECT * FROM studenttable as t1 inner join teachertable as t2 on t1.class=t2.class

等值连接的意思就是ON后面存在一个等值条件

关键字inner join和on,on后面是条件。

它还可以更灵活,变成不等值的内连接,这时候ON后面可以用!=,>,<等等。

4.交叉连接

其实就是完整的笛卡尔积。。。。


面试重点:左连接、右连接、全连接

关键字:LEFT JOIN ON,RIGHT JOIN ON,FULL JOIN ON.

左连接在等值/不等值连接的基础上是在连接的基础上,保留左表不匹配on后面条件的数据。

举个例子,还是上面的等值/不等值连接,假设查询时,某些数据的t1.class!=t2.class,但是,它在左表,所以可以保留。

右连接就是只保留右表不匹配的数据。

全连接就是左、右都保留。

左右全内都可以嵌套。

你可能感兴趣的:(sql,mysql,数据库)