String Data Type Syntax that is defined as  CHAR(0) NULL  occupies only one bit and can take only the values  NULL  and  ’’  (the empty string). A variable-length string.  M  represents the maximum column length in characters. The range of  M  is 0 to 65,535. The effective maximum length of a  VARCHAR  is subject to the maximum row size (65,535 bytes, which is shared among all columns) and the character set used. For example,  utf8  characters can require up to three bytes per character, so a  VARCHAR  column that uses the  utf8  character set can be declared to be a maximum of 21,844 characters. See Section 8.4.7, “Limits on Table Column Count and Row Size” . MySQL stores  VARCHAR  values as a 1-byte or 2-byte length prefix plus data. The length prefix indicates the number of bytes in the value. A  VARCHAR  column uses one length byte if values require no more than 255 bytes, two length bytes if values may require more than 255 bytes. • [NATIONAL] VARCHAR( M ) [CHARACTER SET  charset_name ] [COLLATE collation_name ] MySQL follows the standard SQL specification, and does  not  remove trailing spaces from  VARCHAR  values. VARCHAR  is shorthand for  CHARACTER VARYING .  NATIONAL VARCHAR  is the standard SQL way to define that a  VARCHAR  column should use some predefined character set. MySQL uses  utf8  as this predefined character set. Section 10.3.7, “The National Character Set” .  NVARCHAR  is shorthand for NATIONAL VARCHAR . The  BINARY  type is similar to the  CHAR  type, but stores binary byte strings rather than nonbinary character strings. An optional length  M  represents the column length in bytes. If omitted,  M  defaults to 1. The  VARBINARY  type is similar to the  VARCHAR  type, but stores binary byte strings rather than nonbinary character strings.  M  represents the maximum column length in bytes. A  BLOB  column with a maximum length of 255 (2$^{8}$  − 1) bytes. Each  TINYBLOB  value is stored using a 1- byte length prefix that indicates the number of bytes in the value. A  TEXT  column with a maximum length of 255 (2$^{8}$  − 1) characters. The effective maximum length is less if the value contains multibyte characters. Each  TINYTEXT  value is stored using a 1-byte length prefix that indicates the number of bytes in the value. A  BLOB  column with a maximum length of 65,535 (2$^{16}$  − 1) bytes. Each  BLOB  value is stored using a 2- byte length prefix that indicates the number of bytes in the value. An optional length  M  can be given for this type. If this is done, MySQL creates the column as the smallest BLOB  type large enough to hold values  M  bytes long. •  TEXT[( M )] [CHARACTER SET  charset_name ] [COLLATE  collation_name ] 2037 •  BLOB[( M )] •  TINYTEXT [CHARACTER SET  charset_name ] [COLLATE  collation_name ] •  TINYBLOB •  VARBINARY( M ) •  BINARY[( M )] Note