(1) 如何创建自动增长字段?
整型主键列(INTEGER PRIMARY KEY),如果向主键插入NULL,那么NULL会自动转换成一个比插入前此列最大值大1的整数,如果达到最大值,则随机选择未使用的值)。
如果想让生成的主键值不是原先删除过的值,则需要在定义主键时添加AUTOINCREMENT关键字。
(2)SQLite支持哪些数据类型?
SQLite使用动态类型。内容可以存储为INTEGER,REAL,TEXT,BLOB,或NULL。
(7)如何列出数据库中所有的表/索引
在命令行中输入“.tables”可获取所有的表的列表,输入“.schema”可查看完整的数据库模式(schema),包括所有的表和索引。
每个SQLite数据库都有一个SQLITE_MASTER表,它定义了数据库的模式。这个表看起来像这个样子:
CREATE TABLE sqlite_master (
type TEXT,
name TEXT,
tbl_name TEXT,
rootpage INTEGER,
sql TEXT
);
对于数据表,type字段总是“table”,而name列是表的名称。对于索引,type是“index”,name是索引的名称,tbl_name是索引所属的表的名称。不管是表还是索引,sql字段是它们的创建语句,对于自动创建的索引(用于实现主键或唯一约束),sql字段为NULL。
临时表以及它们的索引和触发器出现在另一个特殊的名为SQLITE_TEMP_MASTER表中,这个表和上面的表结构相同,但只有创建临时表的应用程序能看到。
(11) 如何从存在的表中添加或者删除列
SQLite支持有限的ALTER TABLE语句,你可以用来在表的末尾添加列或者更改表的名字。如果要做更复杂的修改,那么不得不要重新创建表,可以先把数据存到一个临时表中,接着删除表,再创建新表,最后把数据从临时表复制到新表。示例:
BEGIN TRANSACTION;
CREATE TEMPORARY TABLE t1_backup(a,b);
INSERT INTO t1_backup SELECT a,b FROM t1;
DROP TABLE t1; CREATE TABLE t1(a,b);
INSERT INTO t1 SELECT a,b FROM t1_backup;
DROP TABLE t1_backup;
COMMIT;
(19) 插入太慢——我只能每秒做几十次插入
实际上,SQLite在普通的桌面电脑上可以每秒执行50000或更多的插入语句。但它只能每秒做几十个事务。事务被磁盘驱动器的转速限制了。一个事务正常需要磁盘的两次完整的循环(rotatioins),这对于一个7200转每分钟的磁盘驱动器来说,大约每秒限制在60个事务。
事务速度被磁盘驱动器速度限制是因为在默认情况下,在事务完成前,SQLite实际上会等待,直到数据真正安全地存储在磁盘表面上。这样,如果突然断电或者操作系统崩溃,数据还是安全的。
默认地,每个插入语句本身都有自己的事务,但如果把多个插入语句用BEGIN…COMMIT包围,那么所有的插入就被组合到单个事务中。提交所需要的时间被所有的包含的插入语句分摊,所以每个插入语句的时间都会大大减少。
(20)我意外地删除了一些重要信息,如何恢复?
如果有数据库的备份拷贝,那么从备份可以恢复信息。如果没有,那么恢复就非常困难了。……
(22)SQLite支持外键吗?
从3.6.19版本,SQLite开始支持外键约束。之前的版本能够解析外键约束,但不强制实施。
分享到:
相关推荐
本文严格整理自最新的:http://www.sqlite.org/faq.html, (3.7.8) (多说一句,看一个系统的发布,经常首先要看的就是,readme, 新特性,然后就是FAQ列表, 即所谓的常见问题列表)
【Redmine在Linux下的安装与常见问题】 Redmine是一款开源的项目管理软件,适用于团队协作和任务跟踪。本文将详细介绍如何在Linux环境下,特别是Redhat Linux 5.5上安装Redmine 2.0及其相关组件,以及解决可能出现...
8. **常见问题解答(FAQ)**:提供了解决常见问题的快速参考,帮助开发者解决使用过程中遇到的问题。 通过阅读`sqlite-doc-3070900`中的文档,开发者不仅可以学习到SQLite的基本用法,还可以深入了解其内部工作机制...
SQLite是一种轻量级的关系型数据库管理...文档最后提供了SQLite常见问题解答(FAQ),这些解答可以帮助开发者解决在使用SQLite过程中可能遇到的问题,确保开发者能够更好地利用SQLite数据库管理系统来满足应用需求。
9. **附录**:可能包含了编码规范、常见问题解答(FAQ)以及与其他数据库系统的比较等。 通过这些文档,开发者可以深入理解SQLite3的工作原理,有效地使用其API进行数据库操作,解决开发过程中遇到的问题,并优化...
“常遇问题的解决”这部分内容可能是一个常见问题解答(FAQ)或故障排除指南,旨在帮助开发者解决在构建、部署或运行程序时可能遇到的问题。这些问题可能涵盖从数据库连接错误到UI交互异常等各个方面。 标签“c#”...
**SQLite的常见问题** 在使用SQLite时,可能会遇到连接问题、权限问题或SQL语法错误等。解决这些问题通常需要检查数据库文件的权限、确保SQLite库已正确安装,以及正确编写SQL语句。 **SQLite完整中文FAQ** 对于...
9. **常见问题解答**(FAQ):解答用户在使用SQLite过程中可能遇到的问题。 10. **示例代码**:提供实际应用SQLite的代码示例,帮助开发者快速上手。 通过学习和理解SQLite的这些知识点,开发者能够有效地在项目中...
SQLite 是一个轻量级的、嵌入式的数据库引擎,广泛应用...这些只是SQLite使用中的一部分常见问题和解答,完整的SQLite FAQ可以提供更详尽的信息。在实际使用中,了解这些知识点可以帮助更好地管理和操作SQLite数据库。
4. **FAQ和示例**:解答常见问题,并提供实用的代码示例,帮助快速上手。 5. **变更日志**:记录了从SQLite3.7.5之前的版本到此版本的改进和修复。 SQLite3.7.5的使用方法通常包括以下步骤: 1. **安装和配置**:...
本项目是一个基于FAQ(常见问题解答)的智能问答系统,主要目的是帮助用户快速找到解决方案或获取所需信息。它通过实现问题-模板匹配功能,对用户输入的问题进行分析,并与预先定义的问题模板进行比较,从而提供最...
这个"Android高手过招 FAQ .zip"文件很可能包含了一系列与Android开发相关的常见问题解答(FAQ),旨在帮助开发者解决他们在毕业设计、项目实战或构建安卓应用时遇到的问题。让我们深入探讨一下可能涵盖的知识点。 ...
它可能还会提醒读者注意一些常见的误区,或者提供一些阅读和实践的建议,比如如何根据自己的需求快速找到相关问题,或者在遇到问题时如何进行调试和解决。 在这个FAQ文档中,读者可以期待找到以下知识点: 1. **...
"Android高手过招 FAQ.rar"这个压缩包很可能包含了开发者在实践中遇到的各种常见问题及其解答,涉及了Android应用开发的各个方面。以下是根据标题和描述可能包含的一些关键知识点的详细解析: 1. **Android基础知识...
首先,"FAQ"通常代表“常见问题与解答”,在这个上下文中,可能包含了一系列在Android开发过程中经常遇到的问题及其解决方案。这些问题可能涵盖各个方面,如布局设计、性能优化、内存管理、网络通信、多线程处理、...
这个课程设计的重点在于通过解答常见问题(FAQ)的方式,帮助开发者提升其在Android平台上的编程技巧。标签 "android 源码软件 FAQ源代码" 明确指出,这份资料包含了Android应用的源代码,以及与之相关的FAQ,这将对...