(mysql.info) charset-examples
Info Catalog
(mysql.info) charset-national
(mysql.info) charset-syntax
(mysql.info) charset-compatibility
10.3.7 Examples of Character Set and Collation Assignment
---------------------------------------------------------
The following examples show how MySQL determines default character set
and collation values.
*Example 1: Table and Column Definition*
CREATE TABLE t1
(
c1 CHAR(10) CHARACTER SET latin1 COLLATE latin1_german1_ci
) DEFAULT CHARACTER SET latin2 COLLATE latin2_bin;
Here we have a column with a `latin1' character set and a
`latin1_german1_ci' collation. The definition is explicit, so that's
straightforward. Notice that there is no problem with storing a `latin1'
column in a `latin2' table.
*Example 2: Table and Column Definition*
CREATE TABLE t1
(
c1 CHAR(10) CHARACTER SET latin1
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
This time we have a column with a `latin1' character set and a default
collation. Although it might seem natural, the default collation is not
taken from the table level. Instead, because the default collation for
`latin1' is always `latin1_swedish_ci', column `c1' has a collation of
`latin1_swedish_ci' (not `latin1_danish_ci').
*Example 3: Table and Column Definition*
CREATE TABLE t1
(
c1 CHAR(10)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
We have a column with a default character set and a default collation.
In this circumstance, MySQL checks the table level to determine the
column character set and collation. Consequently, the character set for
column `c1' is `latin1' and its collation is `latin1_danish_ci'.
*Example 4: Database, Table, and Column Definition*
CREATE DATABASE d1
DEFAULT CHARACTER SET latin2 COLLATE latin2_czech_ci;
USE d1;
CREATE TABLE t1
(
c1 CHAR(10)
);
We create a column without specifying its character set and collation.
We're also not specifying a character set and a collation at the table
level. In this circumstance, MySQL checks the database level to
determine the table settings, which thereafter become the column
settings.) Consequently, the character set for column `c1' is `latin2'
and its collation is `latin2_czech_ci'.
Info Catalog
(mysql.info) charset-national
(mysql.info) charset-syntax
(mysql.info) charset-compatibility
automatically generated byinfo2html