10.3.4 Набор символов таблицы и сопоставление

10.3.4 Набор символов таблицы и сопоставление Хостинг


10.3.3 Набор символов базы данных и сопоставление

Каждая база данных имеет набор символов базы данных и базу данных.
сопоставление. CREATE DATABASE

и ALTER DATABASE

заявления
иметь необязательные предложения для указания набора символов базы данных
и сопоставление:

 CREATE DATABASE db_name [[DEFAULT] CHARACTER SET charset_name] [[DEFAULT] COLLATE collation_name]
ALTER DATABASE db_name [[DEFAULT] CHARACTER SET charset_name] [[DEFAULT] COLLATE collation_name] 

Ключевое слово SCHEMA
можно использовать вместо
DATABASE
.

CHARACTER SET
и
COLLATE
положения позволяют создавать
базы данных с различными наборами символов и сопоставлениями на
тот же сервер MySQL.

Опции базы данных хранятся в словаре данных и могут быть
проверяется путем проверки информационной схемы
SCHEMATA

стол.

СОЗДАТЬ БАЗУ ДАННЫХ  db_name  НАБОР СИМВОЛОВ latin1 COLLATE latin1_swedish_ci;
  • Если оба CHARACTER SET
    charset_name

    и
    COLLATE
    collation_name

    являются
    указанный, набор символов
    charset_name

    и сопоставление
    collation_name

    используются.

  • Если НАБОР СИМВОЛОВ
    charset_name

    это
    указано без COLLATE
    , набор символов
    charset_name

    и его значение по умолчанию
    используются сопоставления. Чтобы увидеть параметры сортировки по умолчанию для каждого
    набор символов, используйте SHOW CHARACTER
    SET


    заявление или запрос
    INFORMATION_SCHEMA

    CHARACTER_SETS

    стол.

  • Если COLLATE
    collation_name

    это
    указано без CHARACTER SET
    ,
    набор символов, связанный с
    collation_name

    и сопоставление
    collation_name

    используются.

  • В противном случае (ни CHARACTER SET
    ни
    COLLATE
    указан), сервер
    используется набор символов и серверная сортировка.

Набор символов и порядок сортировки для базы данных по умолчанию можно изменить.
определяется по значениям
character_set_database

и
collation_database

система
переменные. Сервер устанавливает эти переменные всякий раз, когда по умолчанию
изменения базы данных. Если базы данных по умолчанию нет, переменные
иметь то же значение, что и соответствующая система уровня сервера
переменные, character_set_server

и collation_server

.

Чтобы увидеть набор символов по умолчанию и параметры сортировки для заданного
базу данных, используйте эти операторы:

USE  db_name ;
ВЫБЕРИТЕ @@character_set_database, @@collation_database;

В качестве альтернативы, чтобы отобразить значения без изменения
база данных по умолчанию:

ВЫБЕРИТЕ DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
ИЗ INFORMATION_SCHEMA. SCHEMATA WHERE SCHEMA_NAME = '  db_name '; 

Набор символов базы данных и порядок сортировки влияют на эти аспекты работа сервера:

  • За CREATE TABLE заявления, набор символов базы данных и сопоставление используются по умолчанию значения для определений таблиц, если набор символов таблицы и комплектация не указана. Чтобы переопределить это, предоставьте явный CHARACTER SET и COLLATE варианты стола.

  • За LOAD DATA заявления о том, что включать нет CHARACTER SET оговорка, сервер использует набор символов, указанный character_set_database системная переменная для интерпретации информации в файле. К переопределить это, предоставьте явное CHARACTER SET пункт.

  • Для хранимых подпрограмм (процедур и функций) база данных набор символов и сопоставление, действующие при создании подпрограммы время используются в качестве набора символов и сопоставления параметры символьных данных, для которых объявление включает нет CHARACTER SET или COLLATE атрибут. Чтобы переопределить это, предоставить CHARACTER SET и COLLATE явно.


. MySQL может иметь сотни тысяч таблеток, поэтому рекомендуется использовать действующую смену кодировки, допускающую действие:

Панель phpMyAdmin

2. Открыть раздел SQL . ( В столбце сравнение сравнения кодировки сопоставления)

Таблицы баз данных

3. Скопируйте запрос, представленный ниже, вставьте его в окно SQL- запрос и из применения «нужная_кодировка», «сопоставление» и «имя_базы» на кодировку, которая вам требуется, кодировка предъявляется и соответствует имени. Далее нажмите кнопку « Вперед ».

SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET нужная_кодировка COLLATE сопоставление;') as sqlcode
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = 'имя_базы'
ORDER BY 1

Окно запроса

4. В ответ возвращен список исходящих файлов для смены кодировки каждой таблицы. Выберите пункт « Полные тексты » и нажал « Вперед ».

Список запросов для смены кодировки БД

5. Скопируйте запросы, которые появились.

Полный список запросов для смены кодировки БД

6. Вернитесь в раздел SQL и вставьте в окно запроса скопированные данные.

Окно запроса

7. Нажмите кнопку « Вперед ». Кодировка во всех таблицах базы данных успешно изменена.

Завершение смены кодировки БД

Ознакомиться с выгодной линейкой тарифов виртуального хостинга можно на нашем сайте.

Иногда в MySQL вместо данных отображается бессвязный набор символов. Это связано с неверно установленной кодировкой. Чтобы данные отображались корректно, нужно настроить верную кодировку для каждой таблицы. Ниже мы покажем, как это сделать сразу для всех таблиц.

10.3.4 Набор символов таблицы и сопоставление

В столбце «Сравнение» вы увидите кодировки, установленные для базы данных:

10.3.4 Набор символов таблицы и сопоставление

3. Скопируйте запрос:

SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET нужная_кодировка COLLATE сопоставление;') as sqlcode
FROM `information_schema`.`TABLES` t

AND t.`TABLE_SCHEMA` = 'имя_базы'
ORDER BY 1

  • нужная_кодировка — кодировка, которую вы хотите применить,  
  • сопоставление — нужное сопоставление кодировки (шаг 2 — столбец «Сравнение»), 
  • имя_базы — имя базы данных.

4. Откройте раздел SQL :

10.3.4 Набор символов таблицы и сопоставление

5. В окно запроса MySQL добавьте запрос из шага 3 и нажмите Вперёд , чтобы выполнить его:

10.3.4 Набор символов таблицы и сопоставление

Пример запроса для всех таблиц базы данных, чтобы изменить кодировку на utf8 и сопоставление кодировки на utf8_general_ci

6. В ответ на запрос отобразится список запросов для смены кодировки каждой таблицы. Перейдите на вкладку Параметры и галочкой отметьте пункт «Полные тексты». Затем кликните Вперёд :

10.3.4 Набор символов таблицы и сопоставление

7. Скопируйте запросы:

10.3.4 Набор символов таблицы и сопоставление

8. Перейдите на вкладку SQL и добавьте запросы в окно запросов MySQL. Затем нажмите Вперёд :

10.3.4 Набор символов таблицы и сопоставление

Готово, вы изменили кодировку во всех таблицах MySQL.
 

10.3.4 Table Character Set and Collation

Every table has a table character set and a table collation. The CREATE TABLE and ALTER TABLE statements have optional clauses for specifying the table character set and collation:

CREATE TABLE  tbl_name  (  column_list 
) [[DEFAULT] CHARACTER SET  charset_name 
] [COLLATE  collation_name 
]]
ALTER TABLE  tbl_name  [[DEFAULT] CHARACTER SET  charset_name 
] [COLLATE  collation_name 
]
 CREATE TABLE t1 ( ... )
CHARACTER SET latin1 COLLATE latin1_danish_ci; 
  • If both CHARACTER SET
    charset_name

    and
    COLLATE
    collation_name

    are
    specified, character set
    charset_name

    and collation
    collation_name

    are used.

  • If CHARACTER SET
    charset_name

    is
    specified without COLLATE
    , character set
    charset_name

    and its default
    collation are used. To see the default collation for each
    character set, use the SHOW CHARACTER
    SET


    statement or query the
    INFORMATION_SCHEMA

    CHARACTER_SETS

    table.

  • If COLLATE
    collation_name

    is
    specified without CHARACTER SET
    , the
    character set associated with
    collation_name

    and collation
    collation_name

    are used.

  • Otherwise (neither CHARACTER SET
    nor
    COLLATE
    is specified), the database
    character set and collation are used.

The table character set and collation are used as default values
for column definitions if the column character set and collation
are not specified in individual column definitions. The table
character set and collation are MySQL extensions; there are no
such things in standard SQL.

Читайте также:  Пошаговое руководство по созданию эффективных триггеров
Оцените статью
Хостинги