SQLite 是一个包含在 C 库中的轻量级数据库。它并不需要独立的维护进程,并且允许使用非标准变体 (nonstandard variant) 的 SQL 查询语句来访问数据库。
一些应用可是使用 SQLite 保存内部数据。它也可以在构建应用原型的时候使用,以便于以后转移到更大型的数据库。
SQLite 的主要优点:
1. 一致性的文件格式:
在 SQLite 的官方文档中是这样解释的,我们不要将 SQLite 与 Oracle 或 PostgreSQL 去比较,与我们自定义格式的数据文件相比,SQLite 不仅提供了很好的
移植性,如大端小端、32/64 位等平台相关问题,而且还提供了数据访问的高效性,如基于某些信息建立索引,从而提高访问或排序该类数据的性能,SQLite 提供的事务功能,也是在操作普通文件时无法有效保证的。
2. 在嵌入式或移动设备上的应用:
由于 SQLite 在运行时占用的资源较少,而且无需任何管理开销,因此对于 PDA、智能手机等
移动设备来说,SQLite 的优势毋庸置疑。
3. 内部数据库:
在有些应用场景中,我们需要为插入到数据库服务器中的数据进行数据过滤或数据清理,以保证最终插入到数据库服务器中的数据有效性。有的时候,数据是否有效,不能通过单一一条记录来进行判断,而是需要和之前一小段时间的历史数据进行特殊的计算,再通过计算的结果判断当前的数据是否合法。
在这种应用中,我们可以用 SQLite 缓冲这部分历史数据。还有一种简单的场景也适用于 SQLite,即统计数据的预计算。比如我们正在运行数据实时采集的服务程序,我们可能需要将每 10 秒的数据汇总后,形成每小时的统计数据,该统计数据可以极大的减少用户查询时的数据量,从而大幅提高前端程序的查询效率。在这种应用中,我们可以将 1 小时内的采集数据均缓存在 SQLite 中,在达到整点时,计算缓存数据后清空该数据。
4. 数据分析:
可以充分利用 SQLite 提供 SQL 特征,完成简单的数据统计分析的功能。这一点是 yaml,csv 文件无法比拟的。
用我的话来说,他很小,很适合做临时的数据库,迁移数据很简单,直接传递文件就可以了。 其实我一开是是选用 leveldb 的,但是他的特性像 nosql,一些稍微复杂的查询,就有些麻烦了。
1、创建一个新的数据库:sqlite3 文件名
这个 test.db 存放着所有的数据。
sqlite3 rui.db
2、打开一个已经存在的数据库:sqlite3 已经存在的文件名
创建一个新数据库和打开一个已经存在的数据库命令是一模一样的,如果文件在当前目录下不存在,则新建;如果存在,则打开。
3、导入数据:.read 数据文件
打开记事本,并将下列 SQL 语句复制到记事本中,保存为 test.sql 到上面说到的 Db 目录下,在命令行环境中输入
.read test.sql
即将所有的数据导入到 rui.db 数据库中。
4、列出所有的数据表: .tables
完成上面所有的工作以后,我们就可以列出所有的数据表了
- [root@devops - ruifengyun / tmp ] $ sqlite3 rui.db SQLite version 3.7.17 2013 - 05 - 20 00 : 56 : 22 Enter ".help"
- for instructions Enter SQL statements terminated with a ";"sqlite > .tables ceshi tbl1 sqlite > sqlite >
5、显示数据库结构:.schema
其实就是一些 SQL 语句,他们描述了数据库的结构,如图
- sqlite > .schema CREATE TABLE tbl1(one varchar(10), two smallint);
- CREATE TABLE ceshi (user text, note text);
6、显示表的结构:.schema 表名
- sqlite > .schema ceshi CREATE TABLE ceshi (user text, note text)
7、导出某个表的数据: .dump 表名
- sqlite > .dump tbl1 PRAGMA foreign_keys = OFF;
- BEGIN TRANSACTION;
- CREATE TABLE tbl1(one varchar(10), two smallint);
- INSERT INTO "tbl1" VALUES('goodbye', 20);
- INSERT INTO "tbl1" VALUES('hello!', 10);
- COMMIT;
再来讲解下 python sqlite3 的用法,其实和 mysqldb 很像吧,他的语法和 mysql 差不多
- import sqlite3
来源: http://it.taocms.org/07/3925.htm