自然连接和集合交的区别?

一下题目:

B C T
B C D B C D B C D
a 0 k1 f 3 h2 a 0 k1
b 1 n1 a 0 k1
n -2 x1
这道题目中为啥选择(交)而不是选择(自然连接)
A、自然连接
B、交
C、除
D、笛卡尔积
对了这道题目的题干是、通过B和C得到T、问通过什么运算得到T的;

【连接】(包括自然连接)和【集合运算】(包括交)有着非常明显的区别:
  【连接】肯定会改变表格的结构,也就是表格的列——当然是增加表格的列了;
  【集合运算】肯定不会改变表的结构,它只能影响集合内元素的个数,也就是表格的行数;
本题中,B、C、T三表的结构相同,自然不可能是连接。

我刚明白,你说的应该是这种极端的情形吧:
  结构完全相同的两个表,进行自然连接;
  进行比较的属性组就是整个表格的所有列;
  筛选出的行就是两表中值完全相同的那些行;
  删除重复列后,得到自然连接的结果;
这个结果,与这两个表的交集完全相同;

从常规的定义来看,这应该是没问题的。不过像连接这样的专用运算,不同的书上可能有不完全一样的定义,可能会有什么限制条件。你最好仔细看看教材,再不行就得问老师了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-10-16
数据库 内连接 外连接 区别
(一)内连接
内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的
列值。内连接分三种:
1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结
果中列出被连接表中的所有列,包括其中的重复列。
例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:
SELECT *
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city
2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的
列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。
3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选
择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
例,在选择列表中删除authors 和publishers 表中重复列(city和state):
SELECT a.*,p.pub_id,p.pub_name,p.country
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city
(二) 外连接
外连接,返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左
外连接或左连接))、右表(右外连接或右连接)或两个边接表(全外连接)中的所有数据行。
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录;
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录;
例如1:SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b
ON a.username=b.username
例如2:SELECT a.*,b.*
FROM city as a FULL OUTER JOIN user as b
ON a.username=b.username
(三) 交叉连接
交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到
结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查
询条件的数据行数。例,titles表中有6类图书,而publishers表中有8家出版社,则下
列交叉连接检索到的记录数将等于6*8=48行。
例如:SELECT type,pub_name
FROM titles CROSS JOIN publishers
ORDER BY type本回答被提问者采纳
相似回答