Spec-Zone .ru
спецификации, руководства, описания, API
|
Сводка строковых типов данных следует. Для дополнительной информации о свойствах и требованиях хранения строковых типов, см. Раздел 11.4, "Строковые Типы", и Раздел 11.6, "Требования Хранения Типа данных".
В некоторых случаях MySQL может изменить строковый столбец на тип, отличающийся от данного в a CREATE TABLE
или ALTER
TABLE
оператор. См. Раздел 13.1.14.3,
"Тихие Изменения Спецификации Столбца".
MySQL интерпретирует спецификации длины в символьных определениях столбца в символьных модулях. Это применяется
к CHAR
,
VARCHAR
,
и TEXT
типы.
Определения столбца для многих строковых типов данных могут включать атрибуты, которые определяют набор символов
или сопоставление столбца. Эти атрибуты применяются к CHAR
, VARCHAR
,
TEXT
типы, ENUM
,
и SET
типы данных:
CHARACTER SET
атрибут определяет набор символов, и
COLLATE
атрибут определяет сопоставление для набора символов. Например:
CREATE TABLE t( c1 VARCHAR(20) CHARACTER SET utf8, c2 TEXT CHARACTER SET latin1 COLLATE latin1_general_cs);
Это табличное определение создает названный столбец c1
у этого есть
набор символов utf8
с сопоставлением значения по умолчанию для того
набора символов, и столбцом называется c2
у этого есть набор символов
latin1
и чувствительное к регистру сопоставление.
Правила для того, чтобы присвоить набор символов и сопоставление, когда или или оба из CHARACTER SET
и COLLATE
атрибуты
отсутствуют, описываются в Разделе 10.1.3.4,
"Набор символов столбца и Сопоставление".
CHARSET
синоним для CHARACTER SET
.
Определение CHARACTER SET binary
атрибут для
символьного типа данных заставляет столбец создаваться как соответствующий двоичный тип данных: CHAR
становится BINARY
, VARCHAR
становится VARBINARY
, и TEXT
становится BLOB
. Для ENUM
и SET
типы данных, это не происходит; они создаются как объявлено.
Предположите, что Вы определяете таблицу, используя это определение:
CREATE TABLE t( c1 VARCHAR(10) CHARACTER SET binary, c2 TEXT CHARACTER SET binary, c3 ENUM('a','b','c') CHARACTER SET binary);
У получающейся таблицы есть это определение:
CREATE TABLE t( c1 VARBINARY(10), c2 BLOB, c3 ENUM('a','b','c') CHARACTER SET binary);
ASCII
атрибут является сокращением для CHARACTER SET latin1
.
UNICODE
атрибут является сокращением для CHARACTER SET ucs2
.
BINARY
атрибут является сокращением для того, чтобы
определить двоичное сопоставление набора символов столбца. В этом случае сортировка и сравнение основана
на значениях цифры.
Символьная сортировка столбца и сравнение основаны на наборе символов, присвоенном столбцу. Для CHAR
, VARCHAR
, TEXT
, ENUM
, и
SET
типы данных, можно объявить столбец с двоичным сопоставлением или BINARY
припишите
сортировке причины и сравнению, чтобы использовать базовые символьные кодовые обозначения, а не лексическое
упорядочивание.
Раздел 10.1, "Поддержка Набора символов", обеспечивает дополнительная информация об использовании наборов символов в MySQL.
[NATIONAL] CHAR[(
M
)] [CHARACTER SET charset_name
] [COLLATE collation_name
]
Строка фиксированной длины, которая всегда дополняется правом пробелами к указанной длине когда
сохраненный. M
представляет длину столбца в символах.
Диапазон M
от 0 до 255. Если M
опускается, длина 1.
Конечные пробелы удаляются когда CHAR
значения не получаются если PAD_CHAR_TO_FULL_LENGTH
Режим SQL включается.
CHAR
сокращение для CHARACTER
. NATIONAL CHAR
(или его эквивалентная краткая форма, NCHAR
) стандартный SQL способ определить это a CHAR
столбец должен использовать некоторый предопределенный набор
символов. MySQL 4.1 и использует utf8
как этот предопределенный набор
символов. Раздел 10.1.3.6, "Набор Национального
характера".
CHAR BYTE
тип
данных является псевдонимом для BINARY
тип данных. Это - функция совместимости.
MySQL разрешает Вам создавать столбец типа CHAR(0)
. Это полезно прежде
всего, когда необходимо быть совместимыми со старыми приложениями, которые зависят от существования
столбца, но которые фактически не используют его значение. CHAR(0)
также довольно хорошо, когда Вы нуждаетесь в столбце, который может принять только два значения:
столбец, который определяется как CHAR(0) NULL
занимает только один бит
и может принять только значения NULL
и ''
(пустая строка).
[NATIONAL] VARCHAR(
M
) [CHARACTER SET charset_name
] [COLLATE collation_name
]
Строка переменной длины. M
представляет максимальную длину
столбца в символах. Диапазон M
от 0 до 65 535. Эффективная
максимальная длина a VARCHAR
подвергается максимальному размеру строки (65 535 байтов,
который совместно используется среди всех столбцов), и используемый набор символов. Например, utf8
символы могут потребовать до трех байтов за символ, таким
образом, a VARCHAR
столбец, который использует utf8
набор символов, как могут объявлять,
является максимумом 21 844 символов. См. Раздел
D.10.4, "Пределы на Столбце таблицы граф и Размер Строки".
Хранилища MySQL VARCHAR
значения как 1-байтовая или 2-байтовая длина снабжают
префиксом плюс данные. Префикс длины указывает на число байтов в значении. A VARCHAR
столбец использует байт одной длины, если значения
требуют не больше, чем 255 байтов, два байта длины, если значения могут потребовать больше чем 255
байтов.
MySQL 5.7 следует за стандартной спецификацией SQL, и не удаляет конечные пробелы из VARCHAR
значения.
VARCHAR
сокращение для CHARACTER VARYING
. NATIONAL VARCHAR
стандартный SQL способ определить это a VARCHAR
столбец должен использовать некоторый предопределенный набор
символов. MySQL 4.1 и использует utf8
как этот предопределенный набор
символов. Раздел 10.1.3.6, "Набор Национального
характера". NVARCHAR
сокращение для NATIONAL
VARCHAR
.
BINARY
тип подобен
CHAR
введите, но хранит двоичные строки байтов, а не недвоичные
символьные строки. M
представляет длину столбца в байтах.
VARBINARY
тип
подобен VARCHAR
введите, но хранит двоичные строки байтов, а не
недвоичные символьные строки. M
представляет максимальную
длину столбца в байтах.
A BLOB
столбец с максимальной длиной 255 (28 – 1) байты.
Каждый TINYBLOB
значение сохранено, используя 1-байтовый префикс длины,
который указывает на число байтов в значении.
TINYTEXT [CHARACTER SET
charset_name
]
[COLLATE collation_name
]
A TEXT
столбец с максимальной длиной 255 (28 – 1) символы.
Эффективная максимальная длина меньше, если значение содержит многобайтовые символы. Каждый TINYTEXT
значение сохранено, используя 1-байтовый префикс длины,
который указывает на число байтов в значении.
A BLOB
столбец с максимальной длиной 65 535 (216 – 1) байты.
Каждый BLOB
значение сохранено, используя 2-байтовый префикс длины,
который указывает на число байтов в значении.
Дополнительная длина M
может быть дан для этого типа. Если
это делается, MySQL создает столбец как самое маленькое BLOB
введите достаточно большой, чтобы содержать значения M
байты долго.
TEXT[(
M
)] [CHARACTER SET charset_name
] [COLLATE collation_name
]
A TEXT
столбец с максимальной длиной 65 535 (216 – 1)
символы. Эффективная максимальная длина меньше, если значение содержит многобайтовые символы. Каждый
TEXT
значение сохранено, используя 2-байтовый префикс длины,
который указывает на число байтов в значении.
Дополнительная длина M
может быть дан для этого типа. Если
это делается, MySQL создает столбец как самое маленькое TEXT
введите достаточно большой, чтобы содержать значения M
символы долго.
A BLOB
столбец с максимальной длиной 16 777 215 (224 – 1)
байты. Каждый MEDIUMBLOB
значение сохранено, используя 3-байтовый префикс длины, который указывает на число байтов в
значении.
MEDIUMTEXT [CHARACTER SET
charset_name
]
[COLLATE collation_name
]
A TEXT
столбец с максимальной длиной 16 777 215 (224 – 1)
символы. Эффективная максимальная длина меньше, если значение содержит многобайтовые символы. Каждый
MEDIUMTEXT
значение сохранено, используя 3-байтовый префикс
длины, который указывает на число байтов в значении.
A BLOB
столбец с максимальной длиной 4,294,967,295 или 4 Гбайт (232
– 1) байты. Эффективная максимальная длина LONGBLOB
столбцы зависят от сконфигурированного максимального
пакетного размера в клиент-серверном протоколе и доступной памяти. Каждый LONGBLOB
значение сохранено, используя 4-байтовый префикс длины,
который указывает на число байтов в значении.
LONGTEXT [CHARACTER SET
charset_name
]
[COLLATE collation_name
]
A TEXT
столбец с максимальной длиной 4,294,967,295 или 4 Гбайт (232
– 1) символы. Эффективная максимальная длина меньше, если значение содержит многобайтовые символы.
Эффективная максимальная длина LONGTEXT
столбцы также зависят от сконфигурированного максимального пакетного размера в клиент-серверном
протоколе и доступной памяти. Каждый LONGTEXT
значение сохранено, используя 4-байтовый префикс длины,
который указывает на число байтов в значении.
ENUM('
value1
','value2
',...) [CHARACTER SET charset_name
]
[COLLATE collation_name
]
Перечисление. Строковый объект, у которого может быть только одно значение, выбранное из списка
значений '
, value1
''
, value2
'...
, NULL
или специальное предложение
''
ошибочное значение. ENUM
значения представляются внутренне как целые числа.
ENUM
у столбца может быть максимум 65 535 отличных элементов.
(Практический предел - меньше чем 3000.) У таблицы может быть не больше, чем 255 уникальных
определений списка элемента среди ENUM
и SET
столбцы, которые рассматривают как группу. Для получения
дополнительной информации по этим пределам см. Раздел
D.10.5, "Пределы, Наложенные .frm
Файловая структура"
.
SET('
value1
','value2
',...)
[CHARACTER SET charset_name
] [COLLATE collation_name
]
Набор. Строковый объект, у которого могут быть нуль или больше значений, каждое из которых должно
быть выбрано из списка значений '
, value1
''
, value2
'...
SET
значения представляются внутренне как целые числа.
A SET
у столбца может быть максимум 64 отличных элементов. У таблицы
может быть не больше, чем 255 уникальных определений списка элемента среди ENUM
и SET
столбцы, которые рассматривают как группу. Для получения
дополнительной информации по этому пределу см. Раздел
D.10.5, "Пределы, Наложенные .frm
Файловая структура"
.