CHAR
В этой статье рассматривается тип данных CHAR. См. Функцию CHAR для функции.
Синтаксис
[NATIONAL] CHAR[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]
Описание
Строка фиксированной длины, которая всегда справа дополняется пробелами до указанной длины при хранении. M представляет длину столбца в символах. Диапазон M составляет от 0 до 255. Если M опущено, длина равна 1.
Столбцы CHAR(0) могут содержать 2 значения: пустую строку или NULL. Такие столбцы не могут быть частью индекса. Справочный механизм хранения CONNECT не поддерживает CHAR(0).
Примечание: При получении значений CHAR хвостовые пробелы удаляются, если не включён режим PAD_CHAR_TO_FULL_LENGTH SQL mode.
До MariaDB 10.2 все наборы символов были типа PADSPACE, что означало, что значения CHAR (а также VARCHAR и TEXT) сравнивались без учёта хвостовых пробелов. Это не относится к оператору сопоставления шаблонов LIKE, который учитывает хвостовые пробелы.
Если уникальный индекс состоит из столбца, где хвостовые символы заполнения удаляются или игнорируются, вставки в этот столбец, где значения различаются только числом хвостовых символов заполнения, приведут к ошибке дублирования ключа.
Примеры
Хвостовые пробелы:
CREATE TABLE strtest (c CHAR(10));
INSERT INTO strtest VALUES('Maria ');
SELECT c='Maria',c='Maria ' FROM strtest;
+-----------+--------------+
| c='Maria' | c='Maria ' |
+-----------+--------------+
| 1 | 1 |
+-----------+--------------+
SELECT c LIKE 'Maria',c LIKE 'Maria ' FROM strtest;
+----------------+-------------------+
| c LIKE 'Maria' | c LIKE 'Maria ' |
+----------------+-------------------+
| 1 | 0 |
+----------------+-------------------+
Наборы символов NO PAD
Наборы символов NO PAD рассматривают хвостовые пробелы как обычные символы. Список всех наборов символов NO PAD можно получить, запросив таблицу Information Schema Collations, например:
SELECT collation_name FROM information_schema.collations WHERE collation_name LIKE "%nopad%"; +------------------------------+ | collation_name | +------------------------------+ | big5_chinese_nopad_ci | | big5_nopad_bin | ...
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/char/