Некоторые важные наборы символов
ASCII- Всего включено 128 символов, включая пробелы, знаки препинания, цифры, прописные и строчные буквы и некоторые невидимые символы. Поскольку всего 128 символов, для кодирования можно использовать один байт.
ISO 8859-1- Всего включено 256 символов.
ASCIIНа основе набора символов расширено 128 общих символов (включая буквы из Германии и Франции) в Западной Европе, и для кодирования можно использовать один байт. Этот набор символов также имеет псевдонимlatin1
- Всего включено 256 символов.
GB2312- Существует 6763 китайских иероглифа и 682 других иероглифа. В то же время этот набор символов совместим.
ASCIIнабор символов - Если символ находится в
ASCIIВ наборе символов используется 1 – байтовая кодировка, в противном случае используется 2-байтовая кодировка. - Количество байтов, необходимых для представления символа, может быть закодировано иначе, называемым кодированием переменной длины.
- Существует 6763 китайских иероглифа и 682 других иероглифа. В то же время этот набор символов совместим.
GBK- В диапазоне включенных символов
GB2312Набор символов был расширен, и метод кодирования совместим.GB2312
- В диапазоне включенных символов
utf8- В нем собраны все персонажи, которых можно себе представить на земле, и он расширяется. Этот набор символов совместим
ASCIIНабор символов, использующий кодировку переменной длины, необходимо использовать кодировку символа1~4Байт
- В нем собраны все персонажи, которых можно себе представить на земле, и он расширяется. Этот набор символов совместим
utf 8 Это просто схема кодирования набора символов Юникода. Юникод Наборы символов могут использоваться utf8 、 utf16 、 utf32 Эти схемы кодирования, utf8 Использование от 1 до 4 байт для кодирования символа, utf16 Использование двух или четырех байт для кодирования символа, utf32 Использование 4 байт для кодирования символа.
Наборы символов и правила сортировки, поддерживаемые в MySQL
Utf8 и utf8mb4 в MySQL
utf8mb3Кастрированныйutf8Набор символов, использующий только 1-3 байта для представления символовutf8mb4Подлинный.utf8Набор символов, использующий от 1 до 4 байт для представления символов
В MySQL utf8 да utf8mb3 Псевдоним
Просмотр наборов символов ПОКАЗАТЬ (НАБОР СИМВОЛОВ | КОДИРОВКА) [НАПРИМЕР, Совпадающие шаблоны]
Просмотр Правил сравнения ПОКАЗАТЬ ПАРАМЕТРЫ СОРТИРОВКИ [НАПРИМЕР, Режим сопоставления]
| _аи | Неизбирательный стресс | акцент нечувствителен |
| _ас | Дискриминация по стрессу | чувствителен к акценту |
| _ci | Без учета регистра | без учета регистра |
| _с | С учетом регистра | чувствительный к регистру |
| _бин | Бинарное сравнение | двоичный |
Применение набора символов и Правил сравнения
1. MySQL имеет четыре уровня наборов символов и правил сравнения
- Уровень сервера
- Уровень базы данных
- Уровень таблицы
- Уровень столбца
2. Уровень сервера
- Наборы символов на уровне сервера:
ПОКАЗЫВАТЬ ПЕРЕМЕННЫЕ, ТАКИЕ КАК "character_set_server" - Правила сравнения на уровне сервера:
ПОКАЗЫВАТЬ ПЕРЕМЕННЫЕ, ТАКИЕ КАК 'collation_server' - Запись в файл конфигурации:
[server] character_set_server=utf8 collation_server=utf8_general_ci
3. Уровень базы данных
- Набор символов текущей базы данных:
ПОКАЗАТЬ ПЕРЕМЕННЫЕ, ТАКИЕ КАК "character_set_database" - Текущие правила сравнения баз данных:
ПОКАЗЫВАТЬ ПЕРЕМЕННЫЕ, ТАКИЕ КАК "база данных сортировки" - Набор символов и правила сравнения базы данных при создании и изменении базы данных
CREATE DATABASE database name
[[DEFAULT] CHARACTER SET Character Set Name]
[[DEFAULT] COLLATE Comparison Rule Name];
ALTER DATABASE database name
[[DEFAULT] CHARACTER SET Character Set Name]
[[DEFAULT] COLLATE Comparison Rule Name];При создании базы данных не указываются наборы символов и правила сравнения, но по умолчанию используются наборы символов и правила сравнения на уровне сервера
4. уровень таблицы
CREATE TABLE Table Name (Column Information)
[[DEFAULT] CHARACTER SET Character Set Name]
[COLLATE Comparison Rule Name]]
ALTER TABLE Table Name
[[DEFAULT] CHARACTER SET Character Set Name]
[COLLATE Comparison Rule Name]Если инструкция по созданию и изменению таблицы не определяет набор символов и правила сравнения, набор символов и правила сравнения базы данных, в которой находится таблица, будут использоваться в качестве набора символов и правил сравнения таблицы.
5. уровень столбца
CREATE TABLE Table Name(
Column name string type [CHARACTER SET character set name] [COLLATE comparison rule name],
Other columns...
);
ALTER TABLE table name MODIFY column name string type [CHARACTER SET character set name] [COLLATE comparison rule name];Для столбца, если набор символов и правила сравнения не указаны в инструкции, созданной и измененной, набор символов и правила сравнения таблицы, в которой находится столбец, будут использоваться в качестве набора символов и правил сравнения столбца.
6. Изменяйте только наборы символов или правила сравнения
- Если изменен только набор символов, правило сравнения будет изменено на правило сравнения по умолчанию для измененного набора символов.
- Если изменено только правило сравнения, набор символов будет изменен на набор символов, соответствующий измененному правилу сравнения.
7. Краткое описание наборов символов и сравнение правил на всех уровнях
- Если столбец создается или изменяется без явного указания набора символов и правил сравнения, по умолчанию в столбце используются набор символов и правила сравнения таблицы.
- Если таблица создается или изменяется без явного указания наборов символов и правил сравнения, по умолчанию в таблице используются наборы символов базы данных и правила сравнения
- Если при создании или изменении базы данных не указан явный набор символов и правила сравнения, база данных по умолчанию использует набор символов сервера и правила сравнения
Набор символов при обмене данными между Клиентом и Сервером
Процесс от отправки запроса до возврата результата сопровождается несколькими преобразованиями набора символов, в которых используются три системные переменные.
| Набор символов, используемый Сервером при декодировании запросов | character_set_client |
| Наборы символов, используемые в запущенном сервере | character_set_connection |
| Набор символов, используемый сервером при возврате данных клиенту | character_set_results |
- Сервер считает, что запрос, отправленный клиентом, используется
character_set_clientЗакодирован - Сервер будет использовать полученный результирующий набор
character_set_resultsКод и отправлять клиенту character_set_connectionЭто просто набор символов, который серверы используют при обработке запросов. На самом деле не важно, что это такое, но важно отметить, что диапазон символов, содержащийся в наборе символов, должен охватывать символы в запросе и результирующем наборе. В противном случае невозможно будет закодировать символы в запросе.character_set_connectionНаборы символов или символы, которые не могут быть закодированы в результирующем наборе
ИМЕНА НАБОРОВ Имя набора символов Эквивалентно:
УСТАНОВИТЬ имя набора;УСТАНОВИТЬ имя набора;УСТАНОВИТЬ имя набора;
Если вы хотите записать в файл конфигурации:
[client] default-character-set=utf8