SQLite3 导出\导入CSV文件

SQLite3 导出\导入CSV文件

导出CSV文件:

sqlite> .head on
sqlite> .mode csv
sqlite> .once D:\office_software\sqlite\data\player.csv
sqlite> select * from player;
sqlite> .once D:/office_software/sqlite/data/player.csv
sqlite> select * from player;

注意文件路径符号 “/”

.header on: 指定头(标题)已启用。 这是可选的。 如果禁用标题,CSV文件将不会包含任何数据。
.mode csv: 指定启用CSV模式。
.once: 指定要输出写入到CSV文件的确切位置。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

导入CSV文件:

sqlite> .mode csv
sqlite> .import  D:/office_software/sqlite/data/player.csv player_copy
sqlite> .tables
player       player_copy  product

.mode csv在.import语句之前使用,以防止命令行实用程序尝试将输入文件文本解释为其他格式。

.mode csv: 指定导入的文件格式为csv
.import: 导入文件,后边跟表名称

在这里插入图片描述

### 如何在SQLite3数据库CSV文件之间导入导出数据 #### 将CSV文件导入SQLite3数据库 为了将CSV文件的数据导入SQLite3数据库中,可以利用Python脚本简化这一过程。通过`sqlite3`模块连接至目标数据库并创建相应的表格来存储CSV文件的内容[^1]。 下面是一个简单的例子展示如何实现这一点: ```python import sqlite3 import csv conn = sqlite3.connect('example.db') # 连接到名为 example.db 的 SQLite 数据库 cur = conn.cursor() # 创建一个新表 test 来保存 CSV 文件中的数据 cur.execute('''CREATE TABLE IF NOT EXISTS test ( id INTEGER PRIMARY KEY, column1 TEXT, column2 TEXT);''') with open('data.csv', 'r') as f: dr = csv.DictReader(f) # 假设 data.csv 是要读取的 CSV 文件路径 to_db = [(i['column1'], i['column2']) for i in dr] cur.executemany("INSERT INTO test (column1, column2) VALUES (?, ?);", to_db) conn.commit() conn.close() ``` 这段代码会打开指定的CSV文件,并将其内容逐行插入到预先定义好的SQLite表里。对于大规模数据集来说,这种方法依然能够保持较高的效率。 #### 从SQLite3数据库导出CSV文件 当需要把SQLite3数据库里的某些查询结果导出CSV格式时,则可以通过如下方式完成: ```python import sqlite3 import csv conn = sqlite3.connect('example.db') cur = conn.cursor() query = "SELECT * FROM test;" # 替换成实际想要导出的 SQL 查询语句 result = cur.execute(query).fetchall() header = [description[0] for description in cur.description] # 获取列名作为头部信息 with open('output.csv', mode='w', newline='') as file: writer = csv.writer(file) writer.writerow(header) writer.writerows(result) conn.close() ``` 此段程序先执行给定的SQL查询获取所需记录列表,再把这些记录写入新的CSV文档之中。值得注意的是,在处理较大规模的数据集合时,可能要考虑分批次提取数据以减少内存占用[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值