ALTER TABLE Statement If you specify  CONVERT TO CHARACTER SET binary , the  CHAR ,  VARCHAR , and  TEXT  columns are converted to their corresponding binary string types ( BINARY ,  VARBINARY ,  BLOB ). This means that the columns no longer have a character set and a subsequent  CONVERT TO  operation does not apply to them. If  charset_name  is  DEFAULT  in a  CONVERT TO CHARACTER SET  operation, the character set named by the  character_set_database  system variable is used. The  CONVERT TO  operation converts column values between the original and named character sets. This is  not  what you want if you have a column in one character set (like  latin1 ) but the stored values actually use some other, incompatible character set (like  utf8 ). In this case, you have to do the following for each such column: The reason this works is that there is no conversion when you convert to or from BLOB  columns. To change only the  default  character set for a table, use this statement: The word  DEFAULT  is optional. The default character set is the character set that is used if you do not specify the character set for columns that you add to a table later (for example, with  ALTER TABLE ... ADD column ). When the  foreign_key_checks  system variable is enabled, which is the default setting, character set conversion is not permitted on tables that include a character string column used in a foreign key constraint. The workaround is to disable  foreign_key_checks  before performing the character set conversion. You must perform the conversion on both tables involved in the foreign key constraint before re-enabling  foreign_key_checks . If you re-enable  foreign_key_checks  after converting only one of the tables, an  ON DELETE CASCADE  or  ON UPDATE CASCADE  operation could corrupt data in the referencing table due to implicit conversion that occurs during these operations (Bug #45290, Bug #74816). ORDER BY  enables you to create the new table with the rows in a specific order. This option is useful primarily when you know that you query the rows in a certain order most of the time. By using this option after major changes to the table, you might be able to get higher performance. In some cases, it might make sorting easier for MySQL if the table is in order by the column that you want to order it by later. An  InnoDB  table created in its own file-per-table tablespace can be imported from a backup or from another MySQL server instance using  DISCARD TABLEPACE  and  IMPORT TABLESPACE  clauses. See Section 15.6.1.3, “Importing InnoDB Tables” . The table does not remain in the specified order after inserts and deletes. ORDER BY  syntax permits one or more column names to be specified for sorting, each of which optionally can be followed by  ASC  or  DESC  to indicate ascending or descending sort order, respectively. The default is 2496 Note Row Order for MyISAM Tables Importing InnoDB Tables Warning ALTER TABLE t1 CHANGE c1 c1 BLOB; ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8; ALTER TABLE  tbl_name  DEFAULT CHARACTER SET  charset_name ;