CSV文件上的SQLite

时间:2013-05-27 10:43:43

标签: sqlite

我有一个小型统计程序,您可以指向CSV文件。它试图确定某些属性(如i.E.哪些列可能是日期)。最近我一直在阅读很多关于SQLite的内容,并希望移植我的应用程序来实现它,因为这样可以更容易地创建新的统计数据,因为只需要编写新的选择。

现在我想知道的是,我知道SQLite可以在内存中运行,但当然我不想总是将整个文件加载到内存中,因为这会变得相当大。所以我想将SQLite指向CSV文件并提供列信息,以便我可以对它进行查询。如果我可以在内存(或临时目录)中创建索引以便统计信息运行得更快,那也很酷。这不需要修改CSV,只需要选择。

这可以开箱即用吗?如果没有,我可以编写自己的文件管理器并将其连接到SQLite,以实现这一目标吗?如果努力不大,那么编写我自己的文件管理器只是一个选项,因为我不想写一个完整的数据库代码。

1 个答案:

答案 0 :(得分:2)

SQLite支持从文件中读取:

$ cat data.csv
Cheese,7,12.3
Bacon,8,19.4
Eggs,3,20.3

# With no filename SQLite creates the database in memory.
$ sqlite3
sqlite> create table data (name text, units integer, price double);
sqlite> .separator ','
sqlite> .import data.csv data
sqlite> select * from data;
Cheese,7,12.3
Bacon,8,19.4
Eggs,3,20.3

您可以在此表格中添加约束和indexes,以帮助您进行分析。