⌘+k ctrl+k
1.4 (LTS)
搜索快捷键 cmd + k | ctrl + k
文本类型

在 DuckDB 中,字符串可以存储在 VARCHAR 字段中。该字段支持存储 Unicode 字符。在内部,数据以 UTF-8 编码。

名称 别名 描述
VARCHAR CHAR, BPCHAR, STRING, TEXT 变长字符串
VARCHAR(n) CHAR(n), BPCHAR(n), STRING(n), TEXT(n) 变长字符串。最大长度 n 不起作用,仅为兼容性提供

指定长度限制

VARCHARSTRINGTEXT 类型指定长度不是必需的,且对系统没有影响。指定长度不会提高性能,也不会减少数据库中字符串的存储空间。支持这些变体是为了兼容那些要求为字符串指定长度的其他系统。

如果您出于数据完整性原因希望限制 VARCHAR 列中的字符数,应使用 CHECK 约束,例如

CREATE TABLE strings (
    val VARCHAR CHECK (length(val) <= 10) -- val has a maximum length of 10
);

VARCHAR 字段允许存储 Unicode 字符。在内部,数据以 UTF-8 编码。

指定压缩类型

您可以使用 USING COMPRESSION 子句为字符串指定压缩类型。例如,要应用 zstd 压缩,请执行

CREATE TABLE tbl (s VARCHAR USING COMPRESSION zstd);

文本类型值

文本类型的值是字符序列,也称为字符串值或简称为字符串。在运行时,字符串值通过以下方式之一构建

包含特殊字符的字符串

要在字符串中使用特殊字符,请使用转义字符串字面量美元符号引用的字符串字面量。或者,您也可以使用字符串拼接和 chr 字符函数

SELECT 'Hello' || chr(10) || 'world' AS msg;
┌──────────────┐
│     msg      │
│   varchar    │
├──────────────┤
│ Hello\nworld │
└──────────────┘

函数

请参阅文本函数模式匹配

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