在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

SQL的表连接怎么实现

111次阅读
没有评论

共计 2410 个字符,预计需要花费 7 分钟才能阅读完成。

这篇“SQL 的表连接怎么实现”文章的知识点大部分人都不太理解,所以丸趣 TV 小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SQL 的表连接怎么实现”文章吧。

SQL 的表连接

在关系数据库中,数据分布在多个逻辑表。想要获得完整有意义的数据集,则需要使用连接来查询这些表中的数据。SQL Server 中支持多种连接,包括内连接、左连接、右连接、交叉连接和全外连接。

一、内连接

内部连接子句用于查询来自两个或多个相关表的数据。INNER JOIN 子句的语法:

SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p 
INNER JOIN production.categories c ON c.category_id = p.category_id

注意:要查询的字段,必须要在字段的前面加上表名或者表的别名,如:p.product_name
其中 FROM 后面的是主表,然后 INNER JOIN 后面的表是要连接的表。主表和连接表进行比较,查 找满足的条件的所有行。连接谓词的计算结果为 true 是,则将主表和连接表进行合并成新的结果 集,如下图所示:

内连接的多个表连接, 如下所示:

SELECT p.product_name, p.list_price ,c.category_name, b.brand_nameFROM production.products p 
INNER JOIN production.categories c ON c.category_id = p.category_id 
INNER JOIN production.brands b ON b.brand_id = p.brand_id

二、左连接

在左连接中使用 LEFT JOIN 子句用于查询来自多个表的数据,它返回是左表中的所有行和右表中匹配行。若是右表中找不到匹配行,则使用 NULL 代替显示,如图所示:

使用 LEFT JOIN 语句进行连接:如下所示:

SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p 
LEFT JOIN production.categories c ON c.category_id = p.category_id

在上面的语法中 FROM 后面的表是左表(production.products),而 LEFT JOIN 后面紧跟的右 表(production.categories)。

三、右连接

在右连接中使用 RIGHT JOIN 子句来进行两个表或多个表进行查询。右查询刚好与左查询的是相反 的,返回右表的所有行和左表的匹配行,若左表找不到匹配行,则返回 NULL 代替显示,如图所示:

使用 RIGHT JOIN 语句进行连接:如下所示:

SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p 
RIGHT JOIN production.categories c ON c.category_id = p.category_id

在上面的语法中 FROM 后面的表是左表(production.products),而 RIGHT JOIN 后面紧跟的右 表(production.categories)。

四、交叉连接

CROSS JOIN 连接两个或多个不相关的表。以下是两个表的 CROSS JOIN 的语法,两种写法:

SELECT T1.select_list 
FROM T1 CROSS JOIN T2;

或者

SELECT T1.select_list 
FROM T1, T2;

CROSS JOIN 将第一个表 (T1) 中的每一行与第二个表 (T2) 中的每一行连接起来。换句话说,交叉连 接返回两个表中行的笛卡尔积。与 INNER JOIN 或 LEFT JOIN 不同,交叉连接不会在连接的表之间 建立关系。
假设 T1 表包含三行:1 , 2 和 3,T2 表包含三行:A,B 和 C。CROSS JOIN 从第一个 表 (T1) 获取一行,然后为第二个表 (T2) 中的每一行创建一个新行。然后它对 第一个 表 (T1) 中的 下一行执行相同操作,依此类推。在此图中,CROSS JOIN 总共创建了 9 行。

五、自连接

自联接用于将表连接到自身(同一个表)。它对于查询分层数据或比较同一个表中的行很有用。
自联接使用内连接或左连接子句。由于使用自联接的查询引用同一个表,因此表别名用于为查询 中的表分配不同的名称。
注意:如果在不使用表别名的情况下在查询中多次引用同一个表,则会出现错误。
示例:

SELECT t1.select_list 
FROM T1 t1INNER JOIN T1 t2 ON t1.category_id = t2.category_id

在 INNER JOIN 这里可以使用其他的子句,比如:LEFT JOIN,RIGHT JOIN

六、全外连接

FULL OUTER JOIN 当左表或右表中存在匹配项时,该命令将返回所有行。如图所示:

使用 FULL OUTER JOIN 查询 pm.projects 表和 pm.member 表中的数据:

SELECT m.name member, p.title project 
FROM pm.members m 
FULL OUTER JOIN pm.projects p ON p.id = m.project_id;

pm.projects 表数据:

pm.member 表数据:

查询结果:

以上就是关于“SQL 的表连接怎么实现”这篇文章的内容,相信大家都有了一定的了解,希望丸趣 TV 小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计2410字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 久久久久综合精品福利啪啪 | 欧美日韩综合一区二区三区 | 福利一区国产 | 男人j进入女人j内部免费网站 | 国产精品二区在线 | 天堂国产一区二区三区 | 日韩国产欧美在线观看一区二区 | 成年女人a毛片免费视频 | 亚洲无线码高清在线观看 | 国产在线播放成人免费 | 久久精品视频8 | 亚洲妇熟xxxx妇色黄 | 国产综合视频 | 视频在线观看一区二区三区 | 亚洲免费网站观看视频 | 女子张开腿让男人桶视频 | 国外欧美一区另类中文字幕 | 欧美熟妇另类久久久久久多毛 | 孕妇怀孕高潮潮喷视频孕妇 | 网www天堂资源在线 网红毛片 | 国产亚洲精品久久麻豆 | 国产日韩网站 | 77788色淫网站免费观看 | 久久99精品久久水蜜桃 | 天堂中文在线免费观看 | 偷拍自拍第一页 | 国产在线精品一区二区三区 | 亚洲 都市 校园 激情 另类 | 欧美在线观看一区二区三区 | 久久久国产精品 | 插插宗合网 | 少妇夜夜爽夜夜春夜夜高潮 | 免费看欧美一级特黄a大片一 | 国产一级做a爱片久久毛片a | 福利观看 | 国产偷自一区二区三区 | 久久久久女人精品毛片 | 日韩视频一区二区 | 欧美一区二区三区国产精品 | 国内免费一区二区三区视频 | 久久久久成人片免费观看蜜芽 |