0

我想知道数据库值类型背后的想法是什么。除了使用空间和性能外,为什么表字段需要具体为int、float或其他类型。这是任何结果吗?

4

3 回答 3

2

通过使用允许数据库帮助您保持数据清洁的数据类型 - 如果您应该在数量字段中有一个 int ,它可以确保您不会不小心在其中粘贴日期。

它还使您不必进行奇怪的转换来进行比较等。例如,作为字符串,您将如何准确比较日期?

于 2012-05-11T04:43:39.680 回答
1

关于为什么要使用数字属性的简单示例:

从员工中选择最高(薪水);从员工中选择姓名,其中薪水 > 2*avg_salary;

于 2012-05-11T04:43:05.067 回答
1

MYSQL 中的某些函数会根据数据类型而有所不同。例如,如果向 MAX 函数传递字符串值,它将返回基于字符的最大 STRING 值,如果您希望它根据数值对值进行排序,那么您将不走运。是的,MYSQL 有时会在需要时将事物转换为数值,但你不能指望它。这是因为字符串从根本上不同于数值 - 并且被区别对待。

此外,MYSQL 的数据类型比您想象的要少——很多只是决定最大存储空间等的别名。SQLite3(用于 iOS 和其他东西)只有 5 种数据类型 - Null、Integer、Real、Text 和 Blob。

最后,您说忽略性能,但是性能在 MYSQL中非常重要,尤其是对于大型数据集。在检查 100000 行以获得最大值时,如果它们本来应该是数字,为什么还要将每个行从数字转换为字符串?

于 2012-05-11T04:48:36.817 回答