|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Сводка строковых типов данных следует. Для дополнительной информации о свойствах и требованиях хранения строковых типов, см. Раздел 11.4, "Строковые Типы", и Раздел 11.6, "Требования Хранения Типа данных".
В некоторых случаях MySQL может изменить строковый столбец на тип, отличающийся от данного в a CREATE TABLE или ALTER
TABLE оператор. См. Раздел 13.1.17.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 символов. См. Раздел
E.10.4, "Пределы на Столбце таблицы граф и Размер Строки".
Хранилища MySQL VARCHAR значения как 1-байтовая или 2-байтовая длина снабжают
префиксом плюс данные. Префикс длины указывает на число байтов в значении. A VARCHAR столбец использует байт одной длины, если значения
требуют не больше, чем 255 байтов, два байта длины, если значения могут потребовать больше чем 255
байтов.
MySQL 5.6 следует за стандартной спецификацией 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 столбцы, которые рассматривают как группу. Для получения
дополнительной информации по этим пределам см. Раздел
E.10.5, "Пределы, Наложенные .frm Файловая структура"
.
SET('
value1','value2',...)
[CHARACTER SET charset_name] [COLLATE collation_name]
Набор. Строковый объект, у которого могут быть нуль или больше значений, каждое из которых должно
быть выбрано из списка значений ', value1'', value2'... SET
значения представляются внутренне как целые числа.
A SET у столбца может быть максимум 64 отличных элементов. У таблицы
может быть не больше, чем 255 уникальных определений списка элемента среди ENUM и SET столбцы, которые рассматривают как группу. Для получения
дополнительной информации по этому пределу см. Раздел
E.10.5, "Пределы, Наложенные .frm Файловая структура"
.