在关系数据模型中,单个列可以有多个数据类型吗?



我在一次作业中遇到了这个问题,答案是假的。有人能解释一下吗,因为我在这里看到了一些问题

在大多数SQL数据库中,严格来说这是不可能的。然而,也有一些例外。在SQLite中,任何类型的数据都可以存储在任何列中。然而,SQLite列支持"关联"的概念。亲和类型有TEXTNUMERICINTEGERREALBLOB5种。在具有TEXT关联的列中插入数字数据将导致该数据首先被转换为文本。

在其他数据库(如MySQL)上,列确实具有刚性类型,但在其他方面也有灵活性。例如,MySQL支持隐式强制转换,这样就允许并且可能对数字列col进行以下比较:

WHERE col > '123'

在这种情况下,MySQL会在进行比较之前隐式地将字符串文字123转换为整数。

列值是一个原子值。

单个原子值只有一种数据类型:为包含该值的列声明的数据类型。

所以答案是:不,关系数据库(遵循SQL标准)中的列不能有多个数据类型。

最新更新