SQLite 中文指南之FAQ第1/6页

 

sqllite使用过程中碰到的一些问题解决,中文版

1. 如何创建自增字段?

2. SQLite 支持哪些数据类型?

3. 为什么能向 SQLite 数据库的整型字段中插入字符串?

4. 为什么 SQLite 认为表达式 '0'=='00' 为真?

5. 为什么 SQLite 不允许在同一张表里使用 '0' 和 '0.0' 作为两个不同的行的主键?

6. 为什么不能在 Linux box 中读取在 SparcStation 中创建的 SQLite 数据库?

7. 多个应用程序或者同一个应用程序的多个例程能同时存取同一个数据库文件吗?

8. SQLite是线程安全的吗?

9. 如何列出一个 SQLite 数据库中的所有的表/索引?

10. SQLite数据库是否有已知的大小限制?

11. 在 SQLite 中 VARCHAR 的最大长度是多少?

12. SQLite 是否支持 BLOB 类型?

13. 如何从一个已存在的 SQLite 数据表中添加/删除字段?

14. 我删除了很多数据但是数据库文件并没有减小,是不是 Bug?

15. 是否能将 SQLite 用于商业用途而不用交版权费用?

16. 我如何使用含有单引号(')的字符串?

17. SQLITE_SCHEMA 错误代表什么?

18. 为什么ROUND(9.95,1) 返回 9.9 而不是 10.0? 难道9.95 不该向上进位么?

(1) 如何创建自增字段?

简单的回答:一个声明为 INTEGER PRIMARY KEY 的字段将自动增加。

这里是详细的答案: 从 SQLite 的 2.3.4 版本开始,如果你将一个表中的一个字段声明为 INTEGER PRIMARY KEY,那么无论你何时向该表的该字段插入一个 NULL 值,这个 NULL 值将自动被更换为比表中该字段所有行的最大值大 1 的整数;如果表为空,那么将被更换为 1。比如,假设你有这样的一张数据表:

CREATE TABLE t1(

a INTEGER PRIMARY KEY,

b INTEGER

);

在这张数据表里,声明

INSERT INTO t1 valueS(NULL,123);

在逻辑意义上等价于:

INSERT INTO t1 valueS((SELECT max(a) FROM t1)+1,123);

一个新的API函数 sqlite3_last_insert_rowid() 返回最近的插入操作的整形键

注意这个整型键始终比之前插入表中的最后一个键大1。新键相对于表中的已有键来说是唯一的, 但它可能与之前从表中删除的键值重叠。要始终得到在整个表中唯一的键,在INTEGER PRIMARY KEY的声明之前加关键词AUTOINCREMENT.这样被选的键将总是比表中已存在的最大键大1。若可能的 最大键已存在于表中,INSERT操作将失败并返回一个SQLITE_FULL错误码.

(2) SQLite 支持哪些数据类型?

参见 http://www.sqlite.org/datatype3.html.

(3) 为什么能向 SQLite 数据库的整型字段中插入字符串?

这是一个功能,不是一个 bug。你可以在任何字段中放任何信息,而不用管字段声明为什么类型。 你可以往整型字段中插入任意长度的字符串,或者往布尔字段中插入浮点数,或者往字符字段中 插入日期。在 CREATE TABLE 命令中你指定给这个字段的数据类型不会限制插入这个字段的数据。 所有的字段可以插入任意长度的字符串。但对于 INTEGER PRIMARY KEY 字段例外。这种字段只能 存放一个64位的整数,否则会出错。

但SQLite会默认你希望使用声明的字段类型。所以,比如你希望在一个声明为INTEGER的字段 中插入一个字符串,SQLite会试图将其转换为一个整数。如果转换成功,那么整数将被插入,否 则插入字符串,这种特性有时被称作type or column affinity.

本文来自脚本之家,原文链接:https://www.jb51.net/article/15820.htm

免责申明:
1. 本站所有下载资源均不包含技术支持和安装服务!需要讨论请进群!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到审核区发布,分享有KR奖励和额外收入!
4. 如有链接无法下载、失效或广告,请联系管理员处理!
5. 本站无法保证资源或破解时效性,如某些授权码过期等问题,恕不在修复范围内。
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!故不接受任何形式的退款,如确认资源确有问题的,会补给相应KR以供再次购买。
7. 53Kr源码暂未发现后门代码,但无法保证100%安全,推荐检测方法:上传到 https://www.virustotal.com/在线查看是否有恶意代码以及其他有后门嫌疑的代码。
8. 在本站下载的源码我还是不建议正式使用,有特别喜欢的可以去程序官方购买。
53kr资源站仅提供学习的平台,所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以删除。
53kr资源分享 » SQLite 中文指南之FAQ第1/6页

发表回复