python操作sqlite3 导入csv文件_[转载]SQLite 3导入导出成txt或csv操作
平時(shí)使用官方提供的sqlite3.exe工具來操作 sqlite的數(shù)據(jù)庫,可以在網(wǎng)上下到。
進(jìn)入管理:
sqlite3.exe d:\\test.db //假設(shè)數(shù)據(jù)是 d:\\test.db
>.databases //顯示所有數(shù)據(jù)庫 和 mysql的 show
databases;
>.tables //顯示當(dāng)前數(shù)據(jù)庫的表格 和 mysql 的show tables;
>.schment tablename; //顯示表格結(jié)構(gòu) 和mysql的 SHOW CREATE
TABLE tbl_name
>.output c:\\\\1.sql //導(dǎo)出當(dāng)前數(shù)據(jù)庫的 sql語句 和mysql的
mysqldump
>.dump
>.import c:\\\\1.sql //導(dǎo)入 //mysql 用source
===================
導(dǎo)入
命令: .import
sqlite> .import 文件名 表名
注1: 不要忘了開頭的點(diǎn)
注2: 這條語句不能用分號結(jié)束. 非SQL不需要分號結(jié)束.
注3: 需要查看默認(rèn)的分隔符separator. 必須一致. 如果不一致可能導(dǎo)致sqlite字段分割錯(cuò)誤.
查看分隔符使用命令 .show , 如果不一致可直接修改, 比如:
sqlite>.separator ","
將分隔符轉(zhuǎn)為逗號.
舉例1:
將文件a.txt中的數(shù)據(jù)導(dǎo)入表 tab_xx. (a.csv中字段以逗號分割)
sqlite> .separator ","
sqlite> .import a.txt tab_xx
sqlite>
導(dǎo)入結(jié)束.
導(dǎo)出
實(shí)現(xiàn)方式: 將輸出重定向至文件.
命令: .output
sqlite> .output a.txt
然后輸入sql語句, 查詢出要導(dǎo)的數(shù)據(jù). 查詢后,數(shù)據(jù)不會顯示在屏幕上,而直接寫入文件.
結(jié)束后,輸入
sqlite> .output stdout
將輸出重定向至屏幕.
舉例2:
將 tab_xx 中的數(shù)據(jù)導(dǎo)出到文件a.txt
sqlite> .output a.txt
sqlite> select * from tab_xx;
sqlite> .output stdout
導(dǎo)出完畢.
如需導(dǎo)成csv格式,直接將文件a.txt換成a.csv即可
Sqlite數(shù)據(jù)庫導(dǎo)入導(dǎo)出與備份恢復(fù)作者:春兒
(1)數(shù)據(jù)導(dǎo)入
建立了Sqlite數(shù)據(jù)庫后就要建立表輸入數(shù)據(jù)了,多數(shù)時(shí)候數(shù)據(jù)量較大,手動輸入不可能,必須用導(dǎo)入語句
導(dǎo)入逗號分隔csv格式數(shù)據(jù)
首先建立一個(gè)表,比如test.db中建表test,如果表已經(jīng)存在,可以利用命令".schema"查看該表結(jié)構(gòu),比如
sqlite>.schema
test,結(jié)果得到test表的結(jié)構(gòu),因?yàn)橐獙?dǎo)入的數(shù)據(jù)必須具有相似的結(jié)構(gòu),所以必須明了目標(biāo)表的結(jié)構(gòu)。
create table test (id int primary key,value);
比如test表具有下面的數(shù)據(jù)
1|34
2|99
3|990
4|390
另一個(gè)csv文本文件為 test.csv,內(nèi)容如下:
5,560
6,78
利用“.import”命令可以導(dǎo)入該數(shù)據(jù),在導(dǎo)入數(shù)據(jù)之前,利用“.separator
''”命令轉(zhuǎn)換sqlite默認(rèn)分隔符,比如“.separator
,”這一句就將分隔符改變?yōu)槎禾?#xff0c;與預(yù)導(dǎo)入數(shù)據(jù)一致才能順利導(dǎo)入,然后鍵入下面語句
.import test.csv test
這樣表test就多了從csv文件導(dǎo)入的兩行記錄,sqlite最新版本已經(jīng)默認(rèn)使用事件,因此海量數(shù)據(jù)導(dǎo)入也很輕松高效。
同樣的方法可以導(dǎo)入txt文本文件。
(2)數(shù)據(jù)導(dǎo)出
.out out.txt
select * from test;
.output stdout
以上三個(gè)語句將表test的全部內(nèi)容查詢結(jié)果創(chuàng)建并導(dǎo)入了文件out.txt,最后一句是使輸出重新定位到屏幕,結(jié)束文件導(dǎo)出。
(3)備份數(shù)據(jù)庫
.output [filename] 導(dǎo)出到文件中,如果該文件不存在,則自動創(chuàng)建
.dump 導(dǎo)出數(shù)據(jù)命令
.output stdout 返回輸出到屏幕(進(jìn)行其他操作)
(4)導(dǎo)入(恢復(fù))數(shù)據(jù)庫
sqlite3 test.db < test.sql
這樣就將備份數(shù)據(jù)庫導(dǎo)入當(dāng)前數(shù)據(jù)庫了。
總結(jié)
以上是生活随笔為你收集整理的python操作sqlite3 导入csv文件_[转载]SQLite 3导入导出成txt或csv操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 垂直串联六关节机器人调试手册_不止下棋能
- 下一篇: 浙商银行战旗卡怎么申请?需要什么条件