首页 / SQLITE / sqlite加载CSV文件
sqlite加载CSV文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了sqlite加载CSV文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1929字,纯文字阅读大概需要3分钟。
内容图文
sqlite加载CSV文件 sqlite加载外部的CSV文件算是一个比较常见的需求. 假设有一sqlite数据库test.db内有一表名为test.对应sql语句为: CREATE TABLE test (id INTEGER NOT NULL,name TEXT NOT NULL,phone TEXT NOT NULL,PRIMARY KEY (id)); 有一外部CSV文件dat
sqlite加载CSV文件
sqlite加载外部的CSV文件算是一个比较常见的需求.
假设有一sqlite数据库test.db内有一表名为test.对应sql语句为:
CREATE TABLE "test" (" "id" INTEGER NOT NULL," "name" TEXT NOT NULL," "phone" TEXT NOT NULL," "PRIMARY KEY ("id") );
有一外部CSV文件data.csv内容如下
5,aaaa,139******
2,bbbb,138******
3,cccc,136******
要把此CSV数据弄到数据库test表中有两种方式.
1. 自己解析CSV文件,然后把数据逐行INSERT INTO 到表内.
因为文件格式其实自己已经知道,所以其实要解析这样的CSV文件没什么难度,某些语言(或者某些库)在字符串处理上有spilt就更为方便.
数据可能比较多,不要直接INSERT INTO,开启事务节能约不少时间.下面有我写的Qt的代码可供参考
[html] QFile file(filePath); if(!file.open(QFile::ReadOnly)) { qDebug() << "文件打开失败"; qDebug() << file.errorString(); } QTextStream in(&file); pSqlDatabase_->transaction(); while (!in.atEnd()) { QString str; in >> str; qDebug() << str; QStringList strs = str.split(","); if(3 == strs.size()) { QString cmd = QString("INSERT INTO test VALUES('%1','%2','%3')").arg(strs.at(0)).arg(strs.at(1)).arg(strs.at(2)); qDebug() << cmd; pQuery_->exec(cmd); } } pSqlDatabase_->commit();
2. 使用sqlite的.import file table命令.
这里方法就没那么直接了,首先再执行.import file table命令之前需要调用.separator ','设置分割符在命令行下大致是这样的:
sqlite3 test.db .separator ',' .import data.csv test
然而很多语言很多库虽然都可以打开外部程序,但打开之后再交互就比较蛋疼,这里采用的是曲线救国的方式.
以Windows平台为例,其他平台自己改一下脚本,写一Windows批处理load.bat内容如下:
@echo off echo .separator ',' >> tmp echo .import data.csv test >> tmp sqlite3.exe test.db 0<tmp
然后从外部调用这个批处理即可.
内容总结
以上是互联网集市为您收集整理的sqlite加载CSV文件全部内容,希望文章能够帮你解决sqlite加载CSV文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。