⌘+k ctrl+k
1.4 (LTS)
搜索快捷键 cmd + k | ctrl + k
导入数据

使用数据库系统的第一步是将数据插入该系统。DuckDB 可以直接连接到许多流行的数据源,并提供多种数据摄取方法,让您可以轻松高效地填充数据库。在本页中,我们提供了这些方法的概述,以便您选择最适合您用例的方法。

INSERT 语句

INSERT 语句是将数据加载到数据库系统中的标准方式。它们适用于快速原型设计,但应避免用于批量加载,因为它们具有显著的逐行开销。

INSERT INTO people VALUES (1, 'Mark');

有关更详细的描述,请参阅INSERT 语句页面

文件加载:相对路径

使用配置选项 file_search_path 来配置相对路径展开的“根目录”。如果未设置 file_search_path,则工作目录将作为相对路径的基础。

文件格式

CSV 加载

可以使用多种方法从 CSV 文件高效加载数据。最简单的方法是使用 CSV 文件名

SELECT * FROM 'test.csv';

或者,使用 read_csv 函数来传递选项

SELECT * FROM read_csv('test.csv', header = false);

或者使用 COPY 语句

COPY tbl FROM 'test.csv' (HEADER false);

还可以直接读取压缩的 CSV 文件(例如,使用 gzip 压缩的文件)

SELECT * FROM 'test.csv.gz';

DuckDB 可以使用 CREATE TABLE ... AS SELECT 语句从加载的数据创建表

CREATE TABLE test AS
    SELECT * FROM 'test.csv';

有关更多详细信息,请参阅 CSV 加载页面

Parquet 加载

可以使用文件名高效地加载和查询 Parquet 文件

SELECT * FROM 'test.parquet';

或者,使用 read_parquet 函数

SELECT * FROM read_parquet('test.parquet');

或者使用 COPY 语句

COPY tbl FROM 'test.parquet';

有关更多详细信息,请参阅 Parquet 加载页面

JSON 加载

可以使用文件名高效地加载和查询 JSON 文件

SELECT * FROM 'test.json';

或者,使用 read_json_auto 函数

SELECT * FROM read_json_auto('test.json');

或者使用 COPY 语句

COPY tbl FROM 'test.json';

有关更多详细信息,请参阅 JSON 加载页面

返回文件名

自 DuckDB v1.3.0 起,CSV、JSON 和 Parquet 读取器支持 filename 虚拟列

COPY (FROM (VALUES (42), (43)) t(x)) TO 'test.parquet';
SELECT *, filename FROM 'test.parquet';

Appender

在多种 API(C、C++、Go、Java 和 Rust)中,Appender 可用作批量数据加载的替代方案。此类可用于高效地向数据库系统添加行,而无需使用 SQL 语句。

本节页面

© 2025 DuckDB 基金会,阿姆斯特丹,荷兰
行为准则 商标使用指南