SQLite3整数最大值

时间:2010-12-15 09:09:16

标签: sql sqlite integer ip

  1. sqlite3中数据类型INTEGER的最大值是多少?
  2. 如何在数据库中存储IP地址?
  3. 附带什么?
  4. 如何使用sql ddl创建属于特定数据库的表?
  5. 这个错误是什么?
  6.   系统列表时出现

    错误   目录:没有这样的表:temp.sqlite_master   无法执行语句

    1. sqlite3文本数据类型是否支持unicode? 谢谢。

5 个答案:

答案 0 :(得分:83)

  1. 看看http://www.sqlite.org/datatype3.html最小值是 - (2 63 )== - 9223372036854775808,最大值是2 63 - 1 == 9223372036854775807
  2. 我认为你应该使用varchar
  3. http://www.sqlite.org/lang_attach.html
  4. http://www.sqlite.org/lang_createtable.html
  5. 可能会有所帮助SQLite 'no such table' error
  6. 通常会查看sqlite documentation

答案 1 :(得分:6)

  

INTEGER。该值是签名的   整数,存储在1,2,3,4,6或8中   字节取决于的大小   价值。

     

INTEGER存储类,用于   例如,包括6个不同的整数   不同长度的数据类型。这个   在磁盘上有所作为。但是作为   读取INTEGER值后立即读取   磁盘和内存进行处理,   他们被转变为最一般的   数据类型(8字节有符号整数)。

来自http://www.sqlite.org/datatype3.html

除非您有其他原因,否则您可以使用TEXT存储IP地址。

答案 2 :(得分:3)

关于第二个问题:

您可以通过两种方式在DB中存储IP地址:

  1. 作为一个字符串。这是推荐的 因为它将支持IPv4和 IPv6并不需要 额外的IP地址麻烦 转换。
  2. 作为整数。 IP基本上是4个字节,可以全部合并为一个整数值。但是,你真的想要吗?这将给你带来很多痛苦,只要它需要就可以将它转换成字符串。

答案 3 :(得分:2)

  
      
  • 如何在数据库中存储IP地址?
  •   

最简单的方法是存储字符串形式(例如,“127.0.0.1”或“::1”),因为这样您可以手动读取它们并重新定位到地址结构(如果必须)简单。 SQLite喜欢字符串(使用TEXT类型)并有效地处理它们。

答案 4 :(得分:2)

  

sqlite3文本数据类型是否支持   的unicode?

是和否。

是的,因为SQLite允许您以UTF-8或UTF-16存储TEXT数据。 (使用PRAGMA ENCODING选择内部格式。)

否则内置LOWERUPPER函数仅影响ASCII字符。但您可以redefine functionscollations添加此支持。 SQLite有一个ICU extension可以做到这一点。