从供应商.sql文件提取数据转CSV的技术求助
解决SQL文件提取数据转CSV及乱码问题
思路纠正
你的思路不完全准确:
- 若该.sql文件是数据备份文件(含CREATE TABLE、INSERT INTO这类语句),无需连接供应商数据库,直接解析本地文件即可提取数据;
- 若只是查询脚本(仅包含SELECT语句),才需要连接对应数据库执行脚本获取结果。
先解决乱码问题
打开文件出现乱码,优先处理编码适配:
- 用Notepad++打开文件,在「编码」菜单中依次尝试「UTF-8」「GBK」「GB2312」「UTF-8 BOM」等编码重新加载,找到能完整显示所有内容的编码;
- 确定编码后,将文件另存为该编码的新文件,避免后续解析出错。
分场景处理数据提取与CSV转换
场景1:SQL文件是数据备份(含建表、插入语句)
- 用DBeaver搭建本地临时库处理:
- 新建SQLite连接(无需额外安装数据库服务),指定本地一个空的.db文件;
- 右键该连接→「执行SQL脚本」,选择处理好编码的.sql文件;
- 脚本执行完成后,找到目标数据表,右键→「导出数据」→选择CSV格式,设置分隔符、编码等参数后导出。
- 若文件是MySQL格式备份,也可通过命令行处理:
# 先导入到本地MySQL临时数据库 mysql -u 用户名 -p 数据库名 < 处理好编码的文件.sql # 将目标表导出为CSV mysql -u 用户名 -p --batch --execute="SELECT * FROM 表名;" 数据库名 > 输出文件.csv
场景2:SQL文件是查询脚本(仅SELECT语句)
- 配置DBeaver连接供应商数据库:
- 打开DBeaver→「新建连接」,选择对应数据库类型(MySQL、Oracle、SQL Server等);
- 填入供应商提供的地址、端口、用户名、密码、数据库名称,测试连接;
- 连接成功后,打开编码正确的SQL文件,执行所有查询语句;
- 对查询结果右键→「导出数据」→选择CSV格式完成导出。
关键注意点
- 处理完编码后查看文件内容:若开头是
CREATE TABLE+INSERT INTO则为备份文件;若全是SELECT语句则为查询脚本; - 若文件是加密或压缩格式,需先确认解密/解压方式后再处理。
内容的提问来源于stack exchange,提问作者Hope
相关产品推荐
相关产品推荐

