我们如何区分这些相关术语以及如何正确使用它们呢?
Row
Record
我刚刚搜索了文档“信息技术 - 数据库语言 - SQL 第 2 部分:基础 (SQL/Foundation)”,该文档定义了所有主要 RDBMS 实现的 SQL 的 ANSI 标准。
正如预期的那样,该词row在整个文档中主要使用了数百次。
row
该词record仅用于描述类似于 Oracle PL/SQL 中使用的记录的记录(特别是描述 ADA 记录数据类型)。文件中提到 6 处。
record
我认为这澄清了这个问题,并回答了双方的各种论点。
附加信息
来自 wiscorp.com 上的一份(最新免费提供的草案版本)SQL 标准的副本(SQL 标准页面有其他几个旧版本和修订版)。
搜索日期为2011-12-21的7IWD2-02-Foundation-2011-12.pdf显示单词row在文档中出现 2277 次,而单词record仅出现 21 次,或者作为动词“记录”或者在最后的一些附录中,在 SQL 数据类型和宿主语言类型(Ada、Pascal)的数据类型对应的规范中。
此外,同一文件在第 57 页(强调我的):
4.15.1 表格介绍 本款由 ISO/IEC 9075-9 中的第 4.10.1 款“表格介绍”修改。 表是零个或多个行的集合,*其中每一行是一个或多个列值的序列。最具体的行类型是行类型。给定表的每一行都具有相同的行类型,称为该表的行类型。表中每一**行的第 i 个字段的值就是表中该行的第 i 列的值。行是可以插入表和从表中删除的最小数据单位。* 一个表的度数,以及它的每一行的度数,是该表的列数。表中的行数是它的基数。基数为 0(零)的表称为空表。 表可以是基表、派生表或临时表。
4.15.1 表格介绍
本款由 ISO/IEC 9075-9 中的第 4.10.1 款“表格介绍”修改。
表是零个或多个行的集合,*其中每一行是一个或多个列值的序列。最具体的行类型是行类型。给定表的每一行都具有相同的行类型,称为该表的行类型。表中每一**行的第 i 个字段的值就是表中该行的第 i 列的值。行是可以插入表和从表中删除的最小数据单位。*
一个表的度数,以及它的每一行的度数,是该表的列数。表中的行数是它的基数。基数为 0(零)的表称为空表。
表可以是基表、派生表或临时表。
就使用 SQL 的 DBMS 而言:
Rows不是记录,fields不是列,tables不是文件!