Типы текстовых данных
В DuckDB строки могут храниться в поле VARCHAR. Поле позволяет хранить символы Юникода. Внутренне данные кодируются как UTF-8.
| Имя | Псевдонимы | Описание |
|---|---|---|
VARCHAR |
CHAR, BPCHAR, STRING, TEXT
| Строка символов переменной длины. |
VARCHAR(n) |
CHAR(n), BPCHAR(n), STRING(n), TEXT(n)
| Строка символов переменной длины. Максимальная длина n не влияет на работу и предоставляется только для совместимости. |
Определение ограничения длины
Определение длины для типов VARCHAR, STRING, и TEXT не требуется и не влияет на систему. Указание длины не улучшит производительность или не уменьшит объем занимаемого места строк в базе данных. Эти варианты поддерживаются для совместимости с другими системами, которым требуется указывать длину для строк.
Если вы хотите ограничить количество символов в столбце VARCHAR по соображениям целостности данных, следует использовать ограничение CHECK, например:
CREATE TABLE strings (
val VARCHAR CHECK (length(val) <= 10) -- val has a maximum length of 10
); Поле VARCHAR позволяет хранить символы Юникода. Внутренне данные кодируются как UTF-8.
Значения типа текста
Значения текстового типа — это строки символов, также известные как строковые значения или просто строки. Во время выполнения строковые значения создаются одним из следующих способов:
- ссылка на столбцы, тип которых объявлен или подразумевается как текстовый тип данных
- строковые литералы
- приведение типов выражений к типу текста
- применение строкового оператора или вызов функции, возвращающей значение текстового типа
Строки со специальными символами
Для использования специальных символов в строке используйте экранированные строковые литералы или строковые литералы в кавычках с символом доллара. В качестве альтернативы можно использовать конкатенацию и chr функцию символов:
SELECT 'Hello' || chr(10) || 'world' AS msg;
┌──────────────┐ │ msg │ │ varchar │ ├──────────────┤ │ Hello\nworld │ └──────────────┘
Функции
См. Функции текста и Сопоставление с образцом.
© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/sql/data_types/text.html