我按如下方式创建了一个表:
create table employers (
id integer primary key,
name string,
surname string,
description string
);
我注意到here string
不在数据类型之间,我应该用其他东西替换它吗?它是其他一些数据类型的别名吗?该字符串可包含的最大字符数是多少?
我使用了string
并且没有任何问题。我只感兴趣,我可以使用字符串。这是别的吗?这种类型的可能性有哪些?
谢谢
答案 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值。