Каждая таблица имеет набор символов таблицы и объединение. Инструкции CREATE TABLE и ALTER TABLE имеют факультативные предложения для определения набора символов таблицы и объединения:
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;
MySQL выбирает набор символов таблицы и объединение следующим способом:
Если CHARACTER SET X и COLLATE Y были определены, то применяются набор символов X и объединение Y.
Если CHARACTER SET X был определен без COLLATE, то используется набор символов X и заданное по умолчанию объединение.
Если COLLATE Y был определен без CHARACTER SET, то используется набор символов, связанный с Y и объединение Y.
Иначе, используется набор символов и объединение от базы данных.
Набор символов таблицы и объединение используется как значения по умолчанию, если набор символов столбца и объединение не определен в индивидуальных определениях столбца. Набор символов и объединение таблицы представляют собой расширения MySQL, не имеется ничего такого в стандарте SQL.