Spec-Zone.ru › MariaDB

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               |
...

См. также

  • Функция CHAR
  • VARCHAR
  • BINARY
  • Требования к хранению типов данных
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительной проверки MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают мнения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/char/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API