The SET NAMES command allows you to specify the character set for the client connection. It establishes the encoding used for data communication between the MySQL server and the client. Setting the correct character set ensures proper handling of characters, including special characters and non-English alphabets.


SET NAMES charset_name [COLLATE collation_name]


  • charset_name: Specifies the character set to use. Common options include utf8, latin1, and cp1251.
  • collation_name: (Optional) Specifies the collation rule to use with the character set. This defines the sorting order and comparison rules for characters. Common options include utf8_general_ci and latin1_swedish_ci.


Example 1: Set the character set to UTF-8:


Example 2: Set the character set to Latin1 and collation to case-insensitive Swedish rules:

SET NAMES latin1 COLLATE latin1_swedish_ci

Common Issues

  • Incorrect Character Set: Using an incorrect character set can lead to data corruption or garbled characters. Ensure you specify the appropriate character set that aligns with your data.
  • Collation Mismatch: If the collation is not specified or mismatched, sorting and comparison operations may produce unexpected results.


SET NAMES is commonly used in conjunction with other commands:

  • CREATE DATABASE: Specify the default character set for a newly created database.
  • ALTER DATABASE: Change the character set of an existing database.
  • CREATE TABLE: Define the character set for a specific table.
  • SHOW CHARACTER SET: Displays the current character set and collation settings.
  • CHARACTER SET: The attribute that defines the character set and collation for a column.