SQL内连接——使用场景记录

自连接

1、自连接(自然连接)是在同一个表上实行多表连接,进行自连接时须先将数据表虚拟化另一个表。

2.语法

SELECT a.column_name, b.column_name...
FROM table1 a, table1 b
WHERE a.common_field = b.common_field;

where后面是等值连接。

内连接

语法:

SELECT a.column_name, b.column_name...
FROM table a (inner) jion table b
on a.common_field = b.common_field
where a.xxx = ""
and
...

区别

1、自然连接一定是等值连接,但等值连接不一定是自然连接。等值连接不把重复的属性除去;而自然连接要把重复的属性除去。

2、等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。

之前在学习内连接的时候,经常困惑是在什么样的场景下可以只用

InnerJoin:

在数据库表中存储数据的时候,有时候是多条数据属于同一个实体对象的,比如下面的score_table1、score_table2的分数记录表中,多条分数记录是属于一个学生的。找到高数和英语分数都在80分以上的同学:

score_table1:

studentIdsubjectIdsubjectNamescore
12高数87
13英语95
13英语67
24线代67
21音乐89
23英语76
select * 
from score_table1 a (inner) join score_table1 b
on 
a.studentId = b.studentId
where
a.subjectId = "2"
and a.score > 80
and b.subjectId = "3"
and b.score > 80

score_table2:

studentIdmathScoreenglishScore

linearAlgebraScore

1null78null
195nullnull
1nullnull32
232nullnull
2nullnull43
2null78null
select * 
from score_table2 a (inner) join score_table2 b
on 
a.studentId = b.studentId
where
a.mathScore > 80
and b.englishScore > 80
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
以下是两道使用 SQL Server 内连接的多选题: 1. 下列哪个选项描述了 SQL Server 内连接的特点? A. 内连接只返回匹配的行。 B. 内连接返回所有行。 C. 内连接只返回左表格中的行。 D. 内连接只返回右表格中的行。 答案:A 解析:SQL Server 内连接是连接两个表格的一种方法,但只返回匹配的行。内连接通常用于通过两个表格中的公共列进行联接。内连接返回的结果集中只包含两个表格之间匹配的行,而不包含任何不匹配的行。因此,选项 A 描述了 SQL Server 内连接的特点。 B、C、D 选项描述的不是 SQL Server 内连接的特点。 2. 下列哪个选项是正确的 SQL Server 内连接语法? A. SELECT * FROM table1 WHERE table1.column = table2.column; B. SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column; C. SELECT * FROM table1, table2 WHERE table1.column = table2.column; D. SELECT * FROM table1 JOIN table2 ON table1.column = table2.column; 答案:B 解析:SQL Server 内连接通常使用 INNER JOIN 语法进行编写。INNER JOIN 语句的语法如下所示: ```sql SELECT columns FROM table1 INNER JOIN table2 ON table1.column = table2.column; ``` 这个 SQL 语句将返回两个表格之间匹配的行,其中 columns 是要返回的列的列表,table1 和 table2 是要连接的表格的名称,column 是连接两个表格的列的名称。因此,选项 B 是正确的 SQL Server 内连接语法。 A、C、D 选项的语法都有错误,不是 SQL Server 内连接的语法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肆〇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值