sqlite中的字符串数据类型

xra*_*alf 2 sqlite string types

我创建了一个表如下:

create table employers (
    id integer primary key,
    name string,
    surname string,
    description string
);
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢

tof*_*tim 13

您想使用TEXT我们使用它需要的任何东西来保存您的数据.

CREATE TABLE Employers (
    id INTEGER PRIMARY KEY,
    name TEXT,
    surname TEXT,
    description TEXT
);
Run Code Online (Sandbox Code Playgroud)

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

SQLite使用更通用的动态类型系统.在SQLite中,值的数据类型与值本身相关联,而不是与其容器相关联.SQLite的动态类型系统向后兼容其他数据库引擎的更常见的静态类型系统,因为在静态类型数据库上工作的SQL语句应该在SQLite中以相同的方式工作.但是,SQLite中的动态类型允许它执行传统的刚性类型数据库中无法实现的操作.

注意到:

SQLite不对字符串,BLOB或数值的长度施加任何长度限制(除了大的全局SQLITE_MAX_LENGTH限制).

最后:

字符串或BLOB的最大长度

字符串中的最大字节数或SQLite中的BLOB由预处理器宏SQLITE_MAX_LENGTH定义.此宏的默认值为10亿(十亿或1,000,000,000).您可以使用命令行选项在编译时提高或降低此值,如下所示:

-DSQLITE_MAX_LENGTH = 123456789当前实现仅支持长度为231-1或2147483647的字符串或BLOB长度.而在此之前,某些内置函数(如hex())可能会失败.在安全敏感的应用程序中,最好不要尝试增加最大字符串和blob长度.事实上,如果可能的话,你最好将最大字符串和blob长度降低到几百万的范围内.

在SQLite的INSERT和SELECT处理过程中,数据库中每行的完整内容被编码为单个BLOB.因此,SQLITE_MAX_LENGTH参数还确定一行中的最大字节数.

可以使用sqlite3_limit(db,SQLITE_LIMIT_LENGTH,size)接口在运行时降低最大字符串或BLOB长度.