⌘+k Ctrl+k
1.3 (稳定版)
搜索快捷键 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 │
└──────────────┘

函数

参见 文本函数模式匹配