数据库笛卡尔积

设R关系元数为3,基数为3,S关系元数为2,基数为2,则进行R*S运算后生成的新关系元数为5,基数为6.这里的元数,基数是什么意思?还有答案我也不懂怎么算的... 设R关系元数为3,基数为3,S关系元数为2,基数为2,则进行R*S运算后生成的新关系元数为5,基数为6.
这里的元数,基数是什么意思?还有答案我也不懂怎么算的
展开
 我来答
莫纯洁是我
2018-03-30 · TA获得超过1.9万个赞
知道小有建树答主
回答量:34
采纳率:100%
帮助的人:7354
展开全部

所谓笛卡尔积,通俗点说就是指包含两个集合中任意取出两个元素构成的组合的集合.

举例子,假设R中有元组M个,S中有元组N个,则R和S的笛卡尔积中包含的元组数量就是M*N.这个规则可以向多个关系扩展.
上面的例子的笛卡尔积结果就是tj_angela给出的(ac,ad,bc,bd)
属于的含义就是R是d1*d2*……*dn子集,这里其实是相等的.

帐号已注销
高粉答主

2021-04-13 · 说的都是干货,快来关注
知道大有可为答主
回答量:1.8万
采纳率:74%
帮助的人:499万
展开全部
1.笛卡尔积定义

笛卡尔积在SQL中的实现方式既是交叉连接(Cross Join)。所有连接方式都会先生成临时笛卡尔积表,笛卡尔积是关系代数里的一个概念,表示两个表中的每一行数据任意组合,上图中两个表连接即为笛卡尔积(交叉连接)

在实际应用中,笛卡尔积本身大多没有什么实际用处,只有在两个表连接时加上限制条件,才会有实际意义

MySQL的多表查询(笛卡尔积原理)
先确定数据要用到哪些表。
将多个表先通过笛卡尔积变成一个表。
然后去除不符合逻辑的数据(根据两个表的关系去掉)。
最后当做是一个虚拟表一样来加上条件即可。
注意:列名最好使用表别名来区别。

笛卡尔积

Demo:

左,右连接,内,外连接

l 内连接:

要点:返回的是所有匹配的记录。

l 外连接有左连接和右连接两种。

要点:返回的是所有匹配的记录 外加 每行主表外键值为null的一条记录。辅表所有列为null值。

select * from a left join b on a.x=b.x order by a.x //左外连接或称左连接
select * from a right join b on a.x=b.x order by a.x //右外连接或称右连接
select子句顺序

子句

说明

是否必须使用

select

要返回的列或表示式



form

从中检索数据的表

仅在从表选择数据时使用

where

行级过滤



group by

分组说明

仅在按组计算聚集时使用

having

组级过滤



order by

输出排序顺序



limit

要检索的行数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-12-14 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5095万
展开全部
笛卡儿积就是把两个(多个)表的结果集相乘
R表中的每一条数据与S表中的每一条数据匹配并呈现,数量级就是两表的成绩,属性为列相加
追问
还是不懂,为什么R*S中会多出一个d还有2
追答
两个结果集无关联相匹配,因为没有关联条件,所以R中每条数据要与S中每条数据进行匹配
R中的a,1,c这条数据要与S中的两条数据进行匹配,最后的结果就是a,1,c看似是重复的
这样R中3条数据,S中2条,最后的结果就是3*2=6条
而列方面直接合并,这个没什么懂不懂的,记住就行了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3eecbda
2019-05-31 · TA获得超过337个赞
知道答主
回答量:86
采纳率:0%
帮助的人:30.8万
展开全部
通俗易懂点说 元数 就是有几种数据,基数就是有几条数据。R*S R中三条每条都与S中两条对应生成一条。所以就是6条啦。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式