1左右连接:以哪个表为主,结果集为“主表”的全部记录+“副表”与“主表”相匹配的记录,如果“副表”中没有和“主表”相匹配的记录,则相对应的记录显示为null
2左连接:左边表全部行+右边表相匹配的行,如果左边表中的某一行,在右边表中没有匹配的行,则显示null(left
join
或者left
outer
join)
3右连接:和左连接相反。(right
join
或者right
outer
join)
4内连接:它返回字段id(连接条件)同时存在于两个表中的记录,也就是说,仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行,内联接消除与另一个表中的任何行不匹配的行。(inner
join或者join)
5全连接:不管匹配不匹配,全部都显示出来。(full
join或者full
outer
join)
6交叉连接:没有where
子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(cross
join不带where)
7自连接:给自己取个别名,一个表当两个表来使用。
CROSS JOIN交叉连接。是一种没有任何限制条件的连接方式,结果为笛卡尔积。SQL语法如下:
上面SQL等同于:
INNER JOIN(默认是JOIN)内连接。在表中存在至少一个匹配时返回行,可以理解为两张表中同时符合某种条件的行的组合。内连接还分为等值连接、不等连接和自连接。SQL语法如下:
等值连接:使用“=”作为连接条件
不等连接:没有使用“=”作为连接条件
自连接:自己连接自己,即连接的表只有一张
LEFT JOIN左连接。外连接的一种,从左表(table1)返回所有的行,即使右表(table2)中没有匹配,如果右表中没有匹配,则结果为 NULL。SQL语法如下:
RIGHT JOIN右连接。外连接的一种,从右表(table2)返回所有的行,即使左表(table1)中没有匹配,如果左表中没有匹配,则结果为 NULL。SQL语法如下:
FULL JOIN全连接。外连接的一种,只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行,集合了 LEFT JOIN 和 RIGHT JOIN 的结果。SQL语法如下:
其中,MySQL不支持FULL JOIN,可使用LEFT JOIN 、UNION、RIGHT JOIN 结合实现FULL JOIN的查询,示例:
UNION联合查询(去重)。用于合并两个或多个 SELECT 语句的结果集。UNION 内部的每个 SELECT 语句必须拥有相同数量和相同顺序的列,列也必须拥有相似的数据类型。SQL语法如下:
注:UNION查询的结果中,不存在重复的值。 UNION ALL联合查询(不去重)。用于合并两个或多个 SELECT 语句的结果集。UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。SQL语法如下:
或者:
注:
UNION ALL查询的结果中,允许存在重复的值。
使用UNION或者UNION ALL时,只能在最后一个SELECT语句使用ORDER BY命令。
join的意思就是连接
当对两个表进行连接 *** 作时,用join来表示,只是一种专业的记法而已,就像数学中的一些符号,为了是书写简单
示例:
将学生表和选课表连接,就可以写
join(StudentSno=SCSno)
这样既简单,又专业
希望可以帮助你
以上就是关于数据库关系的三种类型包括基本表、查询表和( )全部的内容,包括:数据库关系的三种类型包括基本表、查询表和( )、join类型和union类型不能混用、数据库 关系代数中 join 的意思是什么 怎么用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)