Sql 这个术语是什么;“元组”;在关系数据库中是什么意思?

Sql 这个术语是什么;“元组”;在关系数据库中是什么意思?,sql,terminology,rdbms,definition,tuples,Sql,Terminology,Rdbms,Definition,Tuples,请解释sql中元组的含义?谢谢..数据库表中的行元组用于定义多维数据集中的数据片段;它由来自一个或多个维度的一个成员的有序集合组成。元组用于从多维数据集中标识多维数据的特定部分;由多维数据集中每个维度的一个成员组成的元组完整地描述了一个单元格值。它是一个缩短的“N元组”(如四元组,五元组等) 它是作为一个整体的行集合的一行 如果您发行: SELECT col1, col2 FROM mytable ,整个结果将是一个行集,每对col1、col2将是一个元组 有些数据库可以作为一个整体使

请解释sql中元组的含义?谢谢..

数据库表中的行

元组用于定义多维数据集中的数据片段;它由来自一个或多个维度的一个成员的有序集合组成。元组用于从多维数据集中标识多维数据的特定部分;由多维数据集中每个维度的一个成员组成的元组完整地描述了一个单元格值。

它是一个缩短的“
N元组”
(如
四元组
五元组
等)

它是作为一个整体的行集合的一行

如果您发行:

SELECT  col1, col2
FROM    mytable
,整个结果将是一个
行集
,每对
col1、col2
将是一个
元组

有些数据库可以作为一个整体使用元组

比如,你可以这样做:

SELECT  col1, col2
FROM    mytable
WHERE   (col1, col2) =
        (
        SELECT  col3, col4
        FROM    othertable
        )

,它检查一个
行集的整个
元组是否与另一个
行集的整个
元组匹配。在关系数据库中,表是。关系是元组的集合。因此,关系数据库中的表行是关系元组

关系维基:

在数学方面(更具体地说,在 (集合论和逻辑),关系是 为指定真值的属性 k的组合(k元组) 个人。通常,该属性 描述可能的连接 在k元组的组件之间。 对于给定的k元组集,一个真值 值被分配给每个k元组 根据物业是否 或者不成立


这里的大多数答案都是正确的。但是,行不是元组元组
*
是具有名称的已知值的无序集。因此,以下元组是相同的(我使用了一种虚构的元组语法,因为关系元组在很大程度上是一种理论构造):

…当然,假设x、y和z都是整数。还要注意,没有“重复”元组这样的东西。因此,不仅上述两项是相等的,它们也是相同的东西。最后,元组只能包含已知值(因此,没有空值)

**
是一组带有名称的已知或未知值的有序集合(尽管可以省略)。因此,以下比较在SQL中返回false:

(1, 2, 3) = (3, 2, 1)
(3, 1, 2) = (2, 1, 3)
但请注意,有一些方法可以“伪造”。例如,考虑这个<代码> INSERT <代码>语句:

INSERT INTO point VALUES (1, 2, 3)
假设x是第一个,y是第二个,z是第三个,这个查询可以这样重写:

INSERT INTO point (x, y, z) VALUES (1, 2, 3)
或者这个:

INSERT INTO point (y, z, x) VALUES (2, 3, 1)
…但我们真正做的是改变顺序,而不是删除它

还请注意,也可能存在未知值。因此,您可能有具有未知值的行:

(1, 2, NULL) = (1, 2, NULL)
…但请注意,此比较将始终产生
UNKNOWN
。毕竟,你怎么知道两个未知值是否相等

最后,行可以重复。换句话说,
(1,2)
(1,2)
可以比较为相等,但这并不一定意味着它们是相同的东西

如果这是一个你感兴趣的主题,我强烈建议你在CJ Date之前阅读

*
注意,我说的是元组,因为它们存在于关系模型中,这与一般的数学有点不同

**
如果您想知道,SQL中几乎所有的东西都是一行或一个表。因此,
(1,2)
是一行,而
值(1,2)
是一个表(有一行)

更新:我在一篇博客文章中对此答案做了一些扩展

元组是用于关联关系数据库中的表的已知值


tuple=1条记录;n元组=n个记录的有序列表;Elmasri Navathe书(第198页第3版)


记录=有序或无序。

据我所知,一个表有一组K个键和一个带域K的键入函数T。表中的一行或“元组”是一个带域K的函数r,使得r(K)是每个键K的T(K)元素。因此,这个术语具有误导性,因为“元组”实际上更像一个关联数组

无论它在数学中的用途是什么,RDBMS中的元组通常被认为是表或结果集中的一行。在RDBMS中,元组是无序的。MDDBMS中的元组是单元格中的数据实例及其关联的维度实例(成员)


列族数据存储中的元组是什么?

元组用于引用关系数据库模型中的行。但tuple和row有点不同。

它是数据库表中的一行还是任何集合中的任何一行?如果从多个表、视图等创建投影,那么每一行也是元组吗?元组可能是rowAFAIK的子集,结果集中的一行-这可能是一个表、多个表、视图等的所有字段。@Tom Carter-一行也可能是该行的子集。:-)在关系模型中,元组不是有序的:Jason,vartec说的正好相反:关系数据库中的表行是关系元组“他也说了“表是关系(在数学意义上)。”也许我应该说“表不是关系”。:-)你好,我读了你的答案,也读了类似的答案(Mike Samuel on和sampson chen on)以及和,所有人都说元组是有序集,而不是无序集。因此,你的回答让我困惑。我现在正在讨论这个问题,但如果一行有一个唯一的主键,那不是每一行都是唯一的吗?不管它是如何排序的?基本问题:
(x=1,y=2,z=3)
是1元组还是3元组?我不明白(1,2,3)=(3,2,1)在SQL中如何不相等,这是一件坏事?我的意思是,假设x=3,y=2,z=1,它们肯定是两件不同的事情。我想如果在SQL示例中不省略名称,答案可能会更清楚。即使在之后,我还是很困惑
(1, 2, NULL) = (1, 2, NULL)