sqlite中的字符串数据类型

时间:2011-05-24 18:40:05

标签: string sqlite types

我按如下方式创建了一个表:

create table employers (
    id integer primary key,
    name string,
    surname string,
    description string
);

我注意到here string不在数据类型之间,我应该用其他东西替换它吗?它是其他一些数据类型的别名吗?该字符串可包含的最大字符数是多少?

我使用了string并且没有任何问题。我只感兴趣,我可以使用字符串。这是别的吗?这种类型的可能性有哪些?

谢谢

2 个答案:

答案 0 :(得分:13)

您想要使用TEXT我们使用它所需的任何内容来保存您的数据。

CREATE TABLE Employers (
    id INTEGER PRIMARY KEY,
    name TEXT,
    surname TEXT,
    description TEXT
);

请参阅http://www.sqlite.org/datatype3.html并注意:

  

SQLite使用更通用的动态   类型系统。在SQLite中,数据类型   值的关联   价值本身,而不是它的容器。   SQLite的动态类型系统是   向后兼容更多   其他常见的静态类型系统   SQL的意义上的数据库引擎   静态工作的声明   类型化数据库应该工作相同   在SQLite中的方式。但是,动态   在SQLite中输入允许它这样做   不可能的事情   传统的刚性类型数据库。

注意到:

  

SQLite没有强加任何长度   限制(除了大   全局SQLITE_MAX_LENGTH限制)上   字符串长度,BLOB或数字   值。

最后:

  

字符串或BLOB的最大长度

     

a中的最大字节数   SQLite中的字符串或BLOB定义为   预处理器宏   SQLITE_MAX_LENGTH。 默认值   这个宏是10亿(1千   百万或1,000,000,000)。你可以   提高或降低此值   使用命令行编译时   选项如下:

     

-DSQLITE_MAX_LENGTH = 123456789目前的实施只会   支持字符串或BLOB长度   231-1或2147483647。还有一些内置的   hex()等函数可能会失败   在那之前。在   它是安全敏感的应用程序   最好不要试图增加   最大字符串和blob长度。在   事实上,你可能会做得更好   最大字符串和blob长度   更多的东西在少数范围内   如果这是可能的话。百万。

     

在SQLite的部分INSERT和   SELECT处理,完成   数据库中每行的内容是   编码为单个BLOB。所以   SQLITE_MAX_LENGTH参数也是   确定最大字节数   连续。

     

最大字符串或BLOB长度可以   在运行时使用   sqlite3_limit(分贝,SQLITE_LIMIT_LENGTH,大小)   接口

答案 1 :(得分:0)

将您的字段声明为“TEXT”,我相信您可以指定长度限制。

因此您可以将名称TEXT(255)声明为255个字符的TEXT值。