当前位置:  开发笔记 > 编程语言 > 正文

如何导入.sql或.csv文件加载到SQLite?

如何解决《如何导入.sql或.csv文件加载到SQLite?》经验,为你挑选了6个好方法。

我需要将.sql.csv文件转储到SQLite中(我使用的是SQLite3 API).我只找到了导入/加载表的文档,而不是整个数据库.现在,当我输入:

sqlite3prompt> .import FILENAME TABLE 

我得到一个语法错误,因为它期望一个表而不是整个数据库.



1> Jay Igor..:

要从SQL文件导入,请使用以下命令:

sqlite> .read 

要从CSV文件导入,您需要指定文件类型和目标表:

sqlite> .mode csv 
sqlite> .import  


这是正确的答案,但有时它会在时髦/破碎的CSV文件上窒息.
如果它们不在csv文件中,它如何获取列名?

2> Kyle Cronin..:

尝试从命令执行此操作,如:

cat dump.sql | sqlite3 database.db

这显然只适用于dump.sql中的SQL语句.我不确定如何导入CSV.



3> 小智..:

从使用SQLite DB的SCRATCH转到将CSV导入表中:

从网站上获取SQLite.

在命令提示符下运行sqlite3 *它将被创建为空文件.

在新数据库中创建一个新表.该表必须与您的CSV字段匹配才能导入.

您可以通过SQL命令执行此操作: CREATE TABLE ( , );

创建表并且列与文件中的数据匹配后,您可以执行以上操作...

.mode csv 
.import  



4> 小智..:

sqlite3 .import命令不适用于普通的csv数据,因为即使在带引号的字符串中,它也会将任何逗号视为分隔符.

这包括尝试重新导入由shell创建的csv文件:

Create table T (F1 integer, F2 varchar);
Insert into T values (1, 'Hey!');
Insert into T values (2, 'Hey, You!');

.mode csv
.output test.csv
select * from T;

Contents of test.csv:
1,Hey!
2,"Hey, You!"

delete from T;

.import test.csv T
Error: test.csv line 2: expected 2 columns of data but found 3

似乎我们必须将csv转换为Insert语句列表,或者可能使用不同的分隔符.

在SuperUser上,我看到了使用LogParser处理csv文件的建议,我将调查一下.



5> Rufus Polloc..:

如果您乐意使用(python)脚本,那么有一个python脚本可以自动执行此操作:https://github.com/rgrp/csv2sqlite

这将为您自动创建表,并为您做一些基本的类型猜测和数据转换(例如,它将解决一些数字并将列类型设置为"真实").



6> DnD..:

请记住,SQLite的默认分隔符是管道"|"

sqlite> .separator ";"

sqlite> .import path/filename.txt tablename 

http://sqlite.awardspace.info/syntax/sqlitepg01.htm#sqlite010

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有