Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么时候应该在sqlite中使用数据类型REAL还是NUMERIC?_Sqlite - Fatal编程技术网

什么时候应该在sqlite中使用数据类型REAL还是NUMERIC?

什么时候应该在sqlite中使用数据类型REAL还是NUMERIC?,sqlite,Sqlite,在sqlite中,实数和数字数据类型似乎相似。既然NUMERIC支持十进制(10,5),那么什么时候应该使用REAL呢 我使用的是sqlite3。SQLite与大多数其他RDBMS不同,它使用动态类型系统。这意味着SQLite的五个存储类中的任何一个都可以出现在任何列中,尽管该列属于一种类型。但显然,在单个列中混合类型并不是最佳做法。例如,在同一列中混合数字和字符数据是不好的做法,就像在任何数据库中一样。SQLite中的五个实际存储类是: 空的 整数 真实的 正文 斑点 REAL存储类用于

在sqlite中,实数和数字数据类型似乎相似。既然NUMERIC支持十进制(10,5),那么什么时候应该使用REAL呢


我使用的是sqlite3。

SQLite与大多数其他RDBMS不同,它使用动态类型系统。这意味着SQLite的五个存储类中的任何一个都可以出现在任何列中,尽管该列属于一种类型。但显然,在单个列中混合类型并不是最佳做法。例如,在同一列中混合数字和字符数据是不好的做法,就像在任何数据库中一样。SQLite中的五个实际存储类是:

  • 空的
  • 整数
  • 真实的
  • 正文
  • 斑点
REAL
存储类用于具有十进制分量的数字数据。浮动将属于这一类。没有十进制成分的其他数字将分配给
整数
存储类

SQLite引入了一个称为类型“亲缘关系”的概念。它们的引入是为了最大限度地提高SQLite和其他数据库之间的兼容性。从中,我们可以看到
数值
关联与以下类型关联:

  • 数字的
  • 十进制(10,5)
  • 布尔值
  • 日期
  • 日期时间
因此,如果您打算存储精确的
十进制(10,5)
数据,那么
数值的
关联将是有意义的。另一方面,关联
REAL
与浮点(非精确)十进制数据相关联。同样,您可以在任一列中存储任一类型,但从兼容性的角度来看,您可以遵循关联规则