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

怎么在SQL语句中使用JOIN连接数据库

106次阅读
没有评论

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

自动写代码机器人,免费开通

这篇文章给大家介绍怎么在 SQL 语句中使用 JOIN 连接数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

通常有以下几种连接方式:

JOIN  or  INNER JOIN(内连接):这两个是相同的,要求两边表同时有对应的数据,返回行,任何一边缺失数据就不显示。

LEFT JOIN(左外连接):即使右边的表中没有匹配,也从左表返回所有的行。

RIGHT JOIN(右外连接):即使左边的表中没有匹配,也从右表返回所有的行。

FULL JOIN(全外连接):只要其中一个表中存在匹配就返回行。

如例,有 grade 表(课程号 sn,分数 scroe, 学号 id),student 表(学号 id,学生姓名 name),要查询学生的姓名和成绩

怎么在 SQL 语句中使用 JOIN 连接数据库 怎么在 SQL 语句中使用 JOIN 连接数据库

当 JOIN 或是 INNER JOIN 时,

SELECT s.name,g.sn,g.score from student as s join grade as g on s.id = g.id

或者

SELECT s.name,g.sn,g.score from student as s inner join grade as g on s.id = g.id

结果集如下

怎么在 SQL 语句中使用 JOIN 连接数据库

当 LEFT JOIN 时,

SELECT s.name,g.sn,g.score from student as s left join grade as g on s.id = g.id

结果集如下

怎么在 SQL 语句中使用 JOIN 连接数据库

当 RIGHT JOIN 时,

SELECT s.name,g.sn,g.score from student as s right join grade as g on s.id = g.id

结果集如下

怎么在 SQL 语句中使用 JOIN 连接数据库

当 FULL JOIN 时,

SELECT s.name,g.sn,g.score from student as s full join grade as g on s.id = g.id

结果集如下

怎么在 SQL 语句中使用 JOIN 连接数据库

注意,两个表连接时用 on,在使用 left join(right join 或 full join)时,on 与 where 的区别是:

on 条件是在生成临时表时使用的条件,它不管 on 中的条件是否为真,都会返回左边表中的记录

where 条件是在临时表生成好后再对临时表进行过滤的条件,这时已经没有 left join 的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。如下图,

on 条件为黄色部分

SELECT s.name,g.sn,g.score from student as s left join grade as g on s.id = g.id and score =90

怎么在 SQL 语句中使用 JOIN 连接数据库

SELECT s.name,g.sn,g.score from student as s left join grade as g on s.id = g.id where score =90

怎么在 SQL 语句中使用 JOIN 连接数据库

下面看下 SQL 中 join 的各种用法

1. 自然连接(natural join)

自然连接将表中具有相同名称的列自动进行匹配,自然连接不必指定任何同等连接条件也不能认为指定哪些列需要被匹配,自然连接得到的结果表中,两表中名称相同的列只出现一次。

select * from employee natural join department;

2. 内连接(inner join): 产生的结果是 A 和 B 的交集(相同列里面的相同值)

内连接查询能将左表和右表中能关联起来的数据连接后返回,返回的结果就是两个表中所有相匹配的数据。

select * from TableA as A inner join TableB B on A.PK = B.PK;
select * from TableA as A inner join TableB B on A.PK   B.PK;

怎么在 SQL 语句中使用 JOIN 连接数据库

3. 外连接(outer join)

内连接是要显示两张表的内存,而外连接不要求如此,外连接可以依据连接表保留左表,右表或全部表的行为而分为左外连接右外连接和全连接。

select * from TableA as A left(right/full) join TableB as B on A.PA = B.PK;

Full Join: 产生的结果是 A 和 B 的并集(如果没有相同的值会用 null 作为值)

怎么在 SQL 语句中使用 JOIN 连接数据库

Left Join: 产生表 A 的完全集,而 B 表中匹配的则有值(没有匹配的则以 null 值取代)

怎么在 SQL 语句中使用 JOIN 连接数据库

Right Join: 产生表 B 的完全集,而 A 表中匹配的则有值(没有匹配的则以 null 值取代)

怎么在 SQL 语句中使用 JOIN 连接数据库

4. 交叉连接(cross join)

又称笛卡尔连接,交叉连接返回两个集合的笛卡尔积。

select * from TableA cross join TableB;

关于怎么在 SQL 语句中使用 JOIN 连接数据库就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-16发表,共计2001字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 免费看欧美一级特黄a大片一 | 免费人成自慰网站 | 中文字幕不卡高清免费 | 人妻无码aⅴ不卡中文字幕 人妻无码αv中文字幕久久琪琪布 | 亚洲国产精品一区二区成人片国内 | 后入内射欧美99二区视频 | 亚洲精品黄色 | 色翁荡熄又大又硬又粗又动态图 | 国产精品日韩欧美一区二区 | 人妻少妇久久中文字幕 | 国产 日韩 欧美 亚洲 | 亚洲精品成人网站在线观看 | 四虎国产精品免费久久 | 午夜三级做爰视频在线看 | 国产视频一区二区 | 国产成人免费a在线视频 | 欧洲精品一区二区 | 久久久影院 | 亚洲在线久久 | 亚洲视频免费 | 欧美爽爽爽爽爽爽视频 | 内射少妇一区27p | 亚洲人成电影网 | 欧美在线视频播放 | 亚洲精品国产精品制服丝袜 | 久久草在线视频 | 忘穿内裤坐公交被挺进小说 | 老熟女重囗味hdxx70星空 | 亚洲欧美视频在线播放 | 亚洲欧美日产综合一区二区三区 | 色偷偷偷久久伊人大杳蕉 | 亚洲综合久久成人69 | 中文字幕精品视频在线观 | 香蕉国产综合久久猫咪 | 激情欧美一区二区三区 | 国产亚洲高清在线精品99 | 最近2019年好看中文字幕视频 | 极品少妇xxxx精品少妇偷拍 | 99久久国产综合精品女小说 | 亚洲精品色婷婷在线影院麻豆 | a在线观看免费网站大全 |