Читаем MySQL: руководство профессионала полностью

Предположите, что таблица t имеет двоичный столбец col1, определенный как BINARY(50). При условии, что информация в столбце закодирована, используя одиночный набор символов, Вы можете преобразовывать это в не двоичный столбец, который имеет нужный набор символов. Например, если col1 содержит двоичные символы представления данных в греческом наборе символов (greek), Вы можете преобразовывать это следующим образом:

ALTER TABLE t MODIFY col1 CHAR(50) CHARACTER SET greek;

Предположите, что таблица t имеет не двоичный столбец col1, определенный как CHAR(50) CHARACTER SET latin1 , но Вы хотите преобразовывать это, чтобы использовать utf8 так, чтобы Вы могли сохранять значения из многих языков. Следующая инструкция выполняет это:

ALTER TABLE t MODIFY col1 CHAR(50) CHARACTER SET utf8;

Преобразование может быть с потерями, если столбец содержит символы, которые не содержатся в обоих наборах символов.

Специальный случай происходит, если Вы имеете старые таблицы из MySQL 4.0 или ранее, где не двоичный столбец содержит значения, которые фактически закодированы в наборе символов, отличном от заданного по умолчанию набора символов сервера. Например, прикладная программа могла бы сохранить значения sjis в столбце даже при том, что заданный по умолчанию набор символов MySQL latin1. Возможно преобразовать столбец, чтобы использовать соответствующий набор символов, но дополнительный шаг требуется. Предположите, что заданный по умолчанию набор символов сервера был latin1, а col1 определен как CHAR(50), но содержит значения в sjis. Первый шаг должен преобразовать столбец в двоичный тип данных, который удаляет существующую информацию набора символов без того, чтобы выполнить любое символьное преобразование:

ALTER TABLE t MODIFY col1 BINARY(50);

Следующий шаг должен преобразовать столбец в не двоичный тип данных с соответствующим набором символов:

ALTER TABLE t MODIFY col1 CHAR(50) CHARACTER SET sjis;

Эта процедура требует, чтобы таблица не изменилась с инструкциями типа INSERT или UPDATE после обновления до MySQL 4.1 или позже. В этом случае MySQL сохранил бы новые значения в столбце, использующем latin1, и столбец будет содержать смесь значений sjis и latin1, а значит не может быть преобразован правильно.

Если Вы определили атрибуты при создании столбца первоначально, Вы должны также определить их, при изменении таблицы с помощью ALTER TABLE. Например, если Вы определили NOT NULL и явное значение DEFAULT, Вы должны также обеспечить их в инструкции ALTER TABLE. Иначе возникающее в результате определение столбца не будет включать эти атрибуты.

<p id="aRan_1878932065">10.10. Наборы символов и объединения, которые поддерживает MySQL</p>

MySQL поддерживает свыше 70 объединений для более 30 наборов символов. Этот раздел указывает, которые наборы символов MySQL поддерживает. Имеется один подраздел для каждой группы связанных наборов символов. Для каждого набора символов, перечислены допустимые объединения.

Вы можете всегда вносить в список доступные наборы символов и их заданные по умолчанию объединения инструкцией SHOW CHARACTER SET:

mysql> SHOW CHARACTER SET;

+----------+-----------------------------+---------------------+

| Charset | Description | Default collation |

+----------+-----------------------------+---------------------+

| big5 | Big5 Traditional Chinese | big5_chinese_ci |

| dec8 | DEC West European | dec8_swedish_ci |

| cp850 | DOS West European | cp850_general_ci |

| hp8 | HP West European | hp8_english_ci |

| koi8r | KOI8-R Relcom Russian | koi8r_general_ci |

| latin1 | cp1252 West European | latin1_swedish_ci |

| latin2 | ISO 8859-2 Central European | latin2_general_ci |

| swe7 | 7bit Swedish | swe7_swedish_ci |

| ascii | US ASCII | ascii_general_ci |

| ujis | EUC-JP Japanese | ujis_japanese_ci |

| sjis | Shift-JIS Japanese | sjis_japanese_ci |

| hebrew | ISO 8859-8 Hebrew | hebrew_general_ci |

| tis620 | TIS620 Thai | tis620_thai_ci |

| euckr | EUC-KR Korean | euckr_korean_ci |

| koi8u | KOI8-U Ukrainian | koi8u_general_ci |

| gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci |

| greek | ISO 8859-7 Greek | greek_general_ci |

| cp1250 | Windows Central European | cp1250_general_ci |

| gbk | GBK Simplified Chinese | gbk_chinese_ci |

| latin5 | ISO 8859-9 Turkish | latin5_turkish_ci |

| armscii8 | ARMSCII-8 Armenian | armscii8_general_ci |

| utf8 | UTF-8 Unicode | utf8_general_ci |

| ucs2 | UCS-2 Unicode | ucs2_general_ci |

| cp866 | DOS Russian | cp866_general_ci |

| keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci |

| macce | Mac Central European | macce_general_ci |

| macroman | Mac West European | macroman_general_ci |

| cp852 | DOS Central European | cp852_general_ci |

| latin7 | ISO 8859-13 Baltic | latin7_general_ci |

| cp1251 | Windows Cyrillic | cp1251_general_ci |

| cp1256 | Windows Arabic | cp1256_general_ci |

| cp1257 | Windows Baltic | cp1257_general_ci |

| binary | Binary pseudo charset | binary |

| geostd8 | GEOSTD8 Georgian | geostd8_general_ci |

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных