SQL语言中的连接表
连接表,包括:内连接、左连接、右连接、全外连接、交叉连接1.内连接内连接是SQL Server中最常用的连接之一。内部联接子句用于查询来自两个或多个相关表的数据。语法:①在from子句中指定主表(t1);②在 inner join 子句和连接谓词中指定第二个表(t2);③只有连接谓词计算为 true 的行才包 含在结果集中;④inner join子句将表 t1 的每一行与表t2的行进行比较,以查找
连接表,包括:内连接、左连接、右连接、全外连接、交叉连接
1.内连接
内连接是SQL Server中最常用的连接之一。内部联接子句用于查询来自两个或多个相关表的数据。
语法:
①在from子句中指定主表(t1);
②在 inner join 子句和连接谓词中指定第二个表(t2);
③只有连接谓词计算为 true 的行才包 含在结果集中;
④inner join子句将表 t1 的每一行与表t2的行进行比较,以查找满足连接谓词的所有行对;
⑤如果连接谓词结果为 true ,则匹配 的 t1和 t2 行的列值将合并为一个新行并包含在结果集中
T1表和 T2表的内连接结果图:
内连接的例子:
2.左连接
语法:
①left join 子句用于查询来自多个表的数据。它返回左表中的所有行和右表中的匹配行;
②如果在右表中找不到匹配的行,则使用 null 代替显示;
③left join句子返回左表( t1)中的所有行以及右表( t2 )中匹配的行或 null 值
T1表和T2表的左连接结果图:
左连接的例子:
3.右连接
语法:
①right join句子组合来自两个或多个表的数据;
②right join 开始从右表中选择数据并与左表中的行匹配;
③right join返回一个结果集,该结果集包含右表中的所有行,无论是否具有左表中的匹配行;
④如果右表中的行没有来自右表的任何匹配行,则结果集中右表的列将使用 null值
注意:right join 和right outer join是相同的。outer是关键字
T1表和T2表的右连接结果图:
右连接的例子:
4.全外连接
full outer join 当左表或右表中存在匹配项时,该命令将返回所有行。
全外连接的例子:
注意:full outer join关键字返回左表(customer)所有行,以及所有来自右表(orders)的行。
如果customer表中的某些行在orders表中没有匹配项,
或在orders表中的某些行在customer表中没有匹配项,
则这些行也将被列出。
5.交叉连接
①cross join连接两个或多个不相关的表;
②cross join将第一个表(t1)中的每一行与第二个表(t2)中的每一行连接起来;
③交叉连接返回两个表中行的笛卡尔积;
④若t1表中有n行,t2表中有m行,交叉连接则产生n×m行
交叉连接的例子:
6.自连接
①自连接用于同一个表,对于查询分层数据或比较同一个表中的行很有用;
②自连接使用内连接或左连接子句;
③由于使用自连接的查询引用同一个表,因此表别名可分配不同的名称
注意:如果在不使用表别名的情况下,在查询中多次引用同一个表,则会出现错误。
自连接的例子:
更多推荐
所有评论(0)