登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  文章 >  软件教程

DBeaver 怎样把查询结果导出为 CSV

来源:17golang原创

时间:2026-11-03 06:42:19 240浏览 收藏

在 DBeaver 里把查询结果导出为 CSV,直接在结果网格上右键选择 Export data,在向导中选择 CSV,再确认列、编码、分隔符和输出文件即可。若只是导出当前已经查出来的结果,优先从结果网格进入,不要重新从连接树选择整张表。

官方地址:https://dbeaver.com/

官方文档把查询结果、Data Editor 和连接树都归入 Data export,但三种入口读取数据的方式并不完全相同。下面这套路径只针对“查询已经执行完成,现在要保存结果”的场景。

从查询结果网格打开导出入口

先在 SQL Editor 中执行查询,确认结果网格已经显示。把鼠标放到结果表格内,右键选择 Export data,即可打开数据传输向导。不要在编辑器空白处右键,否则菜单可能不会出现结果集相关选项。

  1. 打开已经执行出结果的 SQL Editor。
  2. 在结果网格内右键,选择 Export data。
  3. 在导出格式页面选择 CSV,点击 Next。
原创数据库客户端界面说明图,查询结果网格右键菜单高亮 Export data
图1:从查询结果网格打开 Export data 的操作示意图,不是实际截图。

如果你是在连接树里的表上右键选择 Export Data,DBeaver 会按表对象读取数据;如果从 SQL 脚本使用 Execute → Export from Query,则会按脚本重新读取。当前文章的目标是结果网格,因此选择结果网格上的入口更容易保持筛选后的列和行范围。

选择 CSV 并确认要导出的列

进入 CSV 向导后先看列范围。默认可以导出全部列,也可以展开 Columns,只勾选需要交付的字段。列选择应该在这里完成,而不是导出后再用表格软件删除,因为少导出无关字段能降低文件体积,也能减少敏感列被带走的机会。

需求向导里的处理结果
保留当前查询筛选从查询结果网格打开 Export data以当前结果集为导出对象
只交付部分字段打开 Columns,取消不需要的列CSV 不包含被取消的字段
只交付已选行使用结果网格入口并启用 Selected rows only只输出当前选中的行

“Selected rows only”和“Selected columns only”适用于查询结果或 Data Editor 的导出。如果导出入口来自连接树或 SQL 脚本,数据会直接从数据库读取,不能把结果网格里的选中状态当成同一件事。

设置读取方式与 CSV 格式

下一页通常同时包含数据提取和 CSV 格式设置。小结果集可以沿用已经抓取的行;数据量较大时,则要注意是否重新查询、是否提前统计行数以及抓取批次大小。

  1. 在读取选项中,当前结果集可优先考虑 Use fetched rows,避免为了同一批数据再次查询。
  2. 需要继续操作数据库时,可考虑 Open new connection(s),让导出读取使用独立连接。
  3. 结果很多但不需要进度总数时,谨慎启用 Select row count,因为预先统计行数会增加一次查询成本。
  4. 在 CSV 设置中确认 Encoding、Delimiter、Header、NULL string 与引号策略。
原创数据库客户端界面说明图,CSV 导出向导显示编码、分隔符、表头和 Finish
图2:CSV 导出参数与完成状态的界面说明图,不是运行证据。

例如,给其他系统消费的文件通常要固定 UTF-8、逗号分隔并保留首行表头;如果字段内容本身可能带逗号或换行,应保留引号转义策略。DBeaver 的 CSV 参数还包括 Header case、Header format、Quote character 和 Row delimiter,可按接收方的约定调整。

-- 先把要交付的字段写进查询,减少导出后再清理的工作
SELECT
    id,                 -- 业务主键,便于接收方定位记录
    customer_name,      -- 只导出交付所需的客户名称
    created_at          -- 保留创建时间,方便后续排序或增量处理
FROM orders
WHERE created_at >= '2026-11-01'; -- 用明确条件限定本次导出范围

这个查询只是准备结果集的示例,不代表 DBeaver 会替你验证业务条件。导出前先在结果网格里确认列名、行数范围和日期条件,再进入向导。

指定文件位置并完成导出

在输出文件页选择保存位置和文件名。完成前回看三个点:对象是不是当前查询结果、格式是不是 CSV、输出路径是不是团队约定的位置。确认后点击 Finish;如果页面显示 Proceed,先继续到最后一页,再点击 Finish。

如果这套导出需要反复执行,可以使用向导中的 Save 保存为数据传输任务。任务适合固定查询、固定列和固定输出规则的场景;临时导出则不必为了偶尔使用额外维护任务配置。

按现象处理导出异常

打开 CSV 后中文乱码

先回到 CSV 格式设置,明确选择 UTF-8,并确认打开文件的工具也按 UTF-8 读取。不要先改数据库字符集;单次文件乱码往往只是导出编码和查看工具的编码解释不一致。

CSV 少了列或多了列

重新打开结果网格的 Export data,检查 Columns 是否只保留了部分字段,再检查查询本身是否使用了显式列清单。使用 SELECT * 时,表结构变化也可能让导出列数跟着变化。

NULL 变成空字符串后无法区分

在 CSV 设置里为 NULL string 指定接收方认可的占位符,并在交付说明中写清楚它代表数据库 NULL。不要把空字符串、字符串“NULL”和真正的 NULL 混为一谈。

大结果集导出很慢

先确认是否误启用了 Select row count,再判断是否能使用已经抓取的行;必要时调整 Fetch size。若导出期间还要继续使用数据库,可考虑打开新连接。不要只把 Maximum threads 调大:该选项主要在多表导出时发挥作用,并且线程数增加也会增加数据库和客户端压力。

一套不容易出错的操作顺序

  1. 在结果网格内右键选择 Export data,而不是从空白编辑区寻找菜单。
  2. 选择 CSV,并在 Columns 中确认字段范围。
  3. 根据结果大小选择 Use fetched rows、独立连接和 Fetch size。
  4. 固定 UTF-8、分隔符、表头和 NULL 表示。
  5. 在 Finish 前回看结果对象、格式和文件位置;需要重复执行时再 Save 为任务。

记住一个判断方法:导出内容不对,先回到“对象和列”;文件打开不对,先回到“编码和 CSV 格式”;导出过程太慢,先回到“读取方式和行数统计”。这样比导出完成后再盲目修改文件更快定位。

相关问题

  • DBeaver 可以只导出查询结果中选中的行吗? 可以,从结果网格进入导出向导后使用 Selected rows only;连接树导出整张表时不要把网格选中状态混用。
  • 为什么导出 CSV 前还要设置 Header? Header 决定列名是否写入文件以及写在顶部还是底部,接收方需要按约定解析。
  • 查询结果导出和数据库迁移一样吗? 不一样。查询结果导出是生成文件,数据库迁移是把数据传到另一套数据库或存储目标。
声明:本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>