   [NATIONAL] VARCHAR(M) [BINARY]

A variable-length string.  M represents the maximum column length.
The range of M is 1 to 255 before MySQL 4.0.2, 0 to 255 as of MySQL
4.0.2, and 0 to 65,535 as of MySQL 5.0.3. (The maximum actual length of a
VARCHAR in MySQL 5.0 is determined by the maximum row size and the
character set you use. The maximum effective length is 65,532 bytes.)

Note: Before 5.0.3, trailing spaces were removed when
VARCHAR values were stored, which differs from the standard SQL
specification.

From MySQL 4.1.0 to 5.0.2, a VARCHAR column with a length
specification greater than 255 is converted to the smallest TEXT
type that can hold values of the given length.  For example,
VARCHAR(500) is converted to TEXT, and
VARCHAR(200000) is converted to MEDIUMTEXT.  This is a
compatibility feature.  However, this conversion affects trailing-space
removal.

VARCHAR is shorthand for CHARACTER VARYING.

As of MySQL 4.1.2, the BINARY attribute is shorthand for specifying
the binary collation of the column character set.  Sorting and comparison is
based on numeric character values.  Before 4.1.2, BINARY attribute
causes the column to be treated as a binary string.  Sorting and comparison
is based on numeric byte values.

Starting from MySQL 5.0.3, VARCHAR is stored with a one-byte or
two-byte length prefix + data.  The length prefix is two bytes if the
VARCHAR column is declared with a length greater than 255.
